题目链接
解题思路
-
如果两个二叉树的对应节点都为空,则合并后的二叉树的对应节点也为空;
-
如果两个二叉树的对应节点只有一个为空,则合并后的二叉树的对应节点为其中的非空节点;
-
如果两个二叉树的对应节点都不为空,则合并后的二叉树的对应节点的值为两个二叉树的对应节点的值之和,此时需要显性合并两个节点。
-
对一个节点进行合并之后,还要对该节点的左右子树分别进行合并。这是一个递归的过程
AC代码
class Solution {
public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
if (t1 == null)
return t2;
if (t2 == null)
return t1;
TreeNode ans = new TreeNode(t1.val + t2.val);
ans.left = mergeTrees(t1.left, t2.left);
ans.right = mergeTrees(t1.right, t2.right);
return ans;
}
}
本文解析了如何通过递归实现合并两个二叉树的问题,包括空节点处理、节点值相加以及子树合并的步骤,并提供了LeetCode题目实例和AC代码。适合理解二叉树合并操作的读者。
1177

被折叠的 条评论
为什么被折叠?



