617. 合并二叉树

导读:本篇文章讲解 617. 合并二叉树,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

617. 合并二叉树icon-default.png?t=M666https://leetcode.cn/problems/merge-two-binary-trees/

难度简单1028

给你两棵二叉树: root1 和 root2 。

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。

示例 1:

617. 合并二叉树

输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]
输出:[3,4,5,5,4,null,7]

示例 2:

输入:root1 = [1], root2 = [1,2]
输出:[2,2]

提示:

  • 两棵树中的节点数目在范围 [0, 2000] 内
  • -104 <= Node.val <= 104

通过次数310,014提交次数392,229

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        if(root1==null && root2!=null) return root2;
        t(root1,root2);
        return root1;
    }
    void t(TreeNode root1, TreeNode root2)
    {
        if(root1==null && root2==null) return;
        if(root1!=null && root2!=null){
            root1.val +=root2.val;
            if(root1.left!=null) mergeTrees(root1.left,root2.left);
            if(root1.right!=null) mergeTrees(root1.right,root2.right);
            if(root1.left==null && root2.left!=null) root1.left=root2.left;
            if(root1.right==null && root2.right!=null) root1.right=root2.right;
        }
    }
}

 617. 合并二叉树

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69009.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!