617. 合并二叉树

2021-12-28 10:24:08 浏览数 (1)

一 题目:

二 思路:

  • 每次分别进行同一侧子树的判断,返回一个新结点;
  • 如果其中一个子树不存在,那么直接用另外一个子树作为新树;
  • 如果两个子树都存在,结合两个子树的值,并进行其左右孩子树的递归判断;

三 代码:

代码语言:javascript复制
class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        TreeNode res = dfs(root1, root2);
        return res;
    }

    //找出合并后的结点
    private TreeNode dfs(TreeNode root1, TreeNode root2) {
        if (root1==null){
            return root2;
        }
        if (root2==null){
            return root1;
        }

        TreeNode newNode = new TreeNode(root1.val   root2.val);
        newNode.left=dfs(root1.left,root2.left);
        newNode.right=dfs(root1.right,root2.right);
        return newNode;
    }
}

四 结果:

0 人点赞