Leetcode 617 合并二叉树
2021-12-30 本文已影响0人
itbird01
![](https://img.haomeiwen.com/i5014400/c1c8dee505c7fa93.png)
题意:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。
解题思路
解法1:
1.递归遍历构建一个节点
TreeNode merge = new TreeNode(root1.val + root2.val);
2.然后分别构建merge节点的左子树和右子树
merge.left = mergeTrees(root1.left, root2.left); merge.right = mergeTrees(root1.right, root2.right);
3.返回merge节点,即为所求节点
解题遇到的问题
无
后续需要总结学习的知识点
无
##解法1
class Solution {
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
if (root1 == null) {
return root2;
}
if (root2 == null) {
return root1;
}
TreeNode merge = new TreeNode(root1.val + root2.val);
merge.left = mergeTrees(root1.left, root2.left);
merge.right = mergeTrees(root1.right, root2.right);
return merge;
}
}