美文网首页
Leetcode 617 合并二叉树

Leetcode 617 合并二叉树

作者: itbird01 | 来源:发表于2021-12-30 07:11 被阅读0次
题目.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;
    }
}

相关文章

网友评论

      本文标题:Leetcode 617 合并二叉树

      本文链接:https://www.haomeiwen.com/subject/bbavqrtx.html