CCmonitor 2018-01-04 02:52 采纳率: 0%
浏览 914
已采纳

LeetCode 617. Merge Two Binary Trees 怎么实现调用

求C#大神,LeetCode 617. Merge Two Binary Trees 怎么实现调用的,自己试着写了一下实现不了。
class Program
{
static void Main(string[] args)
{
TreeNode tree = new TreeNode(1);
Program p = new Program();
tree.val = 1;
TreeNode t1;
t1.val = 1;
TreeNode t2;
t2.val = 2;

        //TreeNode t1 = { 1, 3, 2, 5 };
        //TreeNode t2 = new TreeNode{2, 1, 3, null, 4, null, 7};
        p.MergeTrees(t1, t2);
    }

    public TreeNode MergeTrees(TreeNode t1, TreeNode t2)
    {
        if (t1 == null && t2 == null)
        {
            return null;
        }
        if (t1 != null && t2 == null)
        {
            return t1;
        }
        if (t1 == null && t2 != null)
        {
            return t2;
        }
        if (t1 != null && t2 != null)
        {
            t1.val += t2.val;
            t1.left = MergeTrees(t1.left, t2.left);
            t1.right = MergeTrees(t1.right, t2.right);
        }
        return t1;
    }
}

public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;
    public TreeNode(int x) { val = x; }
    public int valprop {
        get { return val;}
        set { }
    }
}
  • 写回答

5条回答 默认 最新

  • threenewbee 2018-01-04 03:34
    关注
     int?[] arr = {new int?(1),new int?(2),new int?(3),new int?(5)};
    TreeNode t = buildtree(arr, 0);
    
    TreeNode BuildTree(int?[] arr, int pos)
    {
    TreeNode t = new TreeNode(arr[pos]);
    if (arr.Length > pos * 2 +1) t.Left = BuildTree(arr, pos * 2 + 1);
    if (arr.Length > pos * 2 +2) t.Right = BuildTree(arr, pos * 2 + 2);
    return t;
    }
    手写的,你参考下
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题