题目描述
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
你需要将它们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将它们的值相加作为节点合并后的新值,否则不为 null 的节点将直接作为新二叉树的节点。
合并必须从两个树的根节点开始。
思路
递归
- 对两棵树同时进行前序遍历,并将对应的节点进行合并。
- 在遍历时,如果两个树的当前节点均不为空,就将它们的值相加,并对它们的左子树和右子树进行递归合并;
- 如果其中有一棵树为空,那么返回另一棵树作为结果
- 如果两个树都为空,返回null
代码
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d2c5520d62c3ca2e9dbab0e9769c4548.png)