BM32 合并二叉树

题目描述

已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。例如:
两颗二叉树是:
tree1
image
tree2
image
合并后的树
image
牛客原题

思路分析

采用递归的方法,因为每一个节点都在做重复的事
思考每次应该做什么
- 接收两个指针,也就是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
}
posted @ 2023-01-03 09:47  含若飞  阅读(19)  评论(0编辑  收藏  举报