您的位置:首页 > 其它

617. Merge Two Binary Trees

2017-11-24 09:54 302 查看
问题描述:将两个二叉树对应节点的值相加,得到一个新的二叉树。

原答案:

public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
if(t1==null)
return t2;
if(t2==null)
return t1;
TreeNode result=new TreeNode(0);
result.val=t1.val+t2.val;
result=calculateNode(result,t1,t2);
return result;
}

private TreeNode calculateNode(TreeNode result,TreeNode t1, TreeNode t2){
result.val=t1.val+t2.val;
if(t1.left==null){
if(t2.left!=null){
result.left=t2.left;
}
}else if(t2.left==null){
result.left=t1.left;
}else{
result.left=new TreeNode(0);
result.left=calculateNode(result.left,t1.left,t2.left);
}

if(t1.right==null){
if(t2.right!=null)
result.right=t2.right;
}else if(t2.right==null){
result.right=t1.right;
} else{
result.right=new TreeNode(0);
result.right=calculateNode(result.right,t1.right,t2.right);
}

return result;
}


最佳答案:

public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
if (t1 == null) {
return t2;
}
if (t2 == null) {
retur
4000
n t1;
}
t1.val += t2.val;
t1.left = mergeTrees(t1.left, t2.left);
t1.right = mergeTrees(t1.right, t2.right);
return t1;
}


简洁而又完美的递归
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: