题目描述
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。
示例 1:
1 | 输入: |
题解
先序遍历+递归
刚开始分析时想造一棵新的树, 这样的思路很麻烦. 正确的做法是对其中一棵树进行改造比如( t1 )
若t1为null, 则返回t2
若t2为null, 则返回t1
若两个节点都不为空, 则将两个节点的值相加赋给t1
1 | public class lc617 { |