题目描述
已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。例如:
两颗二叉树是:
tree1
tree2
合并后的树
牛客原题
思路分析
采用递归的方法,因为每一个节点都在做重复的事
思考每次应该做什么
- 接收两个指针,也就是t1和t2,如果t1和t2都有,那么需要将值合并,合并到其中一条即可,
- 之后将t1和t2的左子树再递归调用一次,右子树也是如此
代码参考
const mergeTrees = function (t1, t2) {
// 如果传的t1和t2都存在
if (t1 && t2) {
t1.val += t2.val
t1.left = mergeTrees(t1.left, t2.left)
t1.right = mergeTrees(t1.right, t2.right)
}
// 如果t1为空,则返回t2,否则,返回t1
return t1 || t2
}
标签:BM32,right,mergeTrees,合并,t2,t1,二叉树
From: https://www.cnblogs.com/zx529/p/17021134.html