合并二叉树

题目链接

合并二叉树

题目描述

合并二叉树_第1张图片

注意点

  • 如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点

解答思路

  • 先序遍历二叉树,将重叠部分节点值相加作为新节点的值,再以相同的步骤遍历左右子树即可

代码

class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        if (root1 == null) {
            return root2;
        }
        if (root2 == null) {
            return root1;
        }
        TreeNode node = new TreeNode();
        node.val = root1.val + root2.val;
        node.left = mergeTrees(root1.left, root2.left);
        node.right = mergeTrees(root1.right, root2.right);
        return node;
    }
}

关键点

  • 先序遍历的思想
  • 节点为null的情况判断

你可能感兴趣的:(算法TOP100,leetcode,java,算法,数据结构)