求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 { }
}
}
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;
}
手写的,你参考下
你指什么调用,首先你要有两个二叉树,然后把两个树的根节点节点传入MergeTrees
用节点数少的那个树,一个个把节点插入另一个树
你指什么调用,首先你要有两个二叉树,然后把两个树的根节点节点传入MergeTrees的呀
用节点数少的那个树,一个个把节点插入另一个树。