617. Merge Two Binary Trees

一、题目

  1、审题 

  

 

  2、分析

    将两个二叉树合并为一棵(对应的节点值相加)。

 

二、解答

  方法一、

    将 t1 作为目标二叉树,

    ①  若 t1 与 t2 均不为空, 则 t1 值为 t1 与 t2 值之和。递归计算 t1 左右孩子

    ②  若 t1 为空,则返回 t2

    ③ 若 t2 为空,则返回 t1

    public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
        if(t1 == null)
            return t2;
        if(t2 != null) {
            t1.val += t2.val;
            t1.left = mergeTrees(t1.left, t2.left);
            t1.right = mergeTrees(t1.right, t2.right);
        }
        return t1;
    }

 

  方法二、

    新建一棵二叉树,作为两颗树合并的结果。

    public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
        if(t1 == null)
            return t2;
        if(t2 == null)
            return t1;
        
        TreeNode newNode = new TreeNode(t1.val + t2.val);
        newNode.left = mergeTrees(t1.left, t2.left);
        newNode.right = mergeTrees(t1.right, t2.right);
        return newNode;
    }

 

posted @ 2019-05-27 20:55  skillking2  阅读(101)  评论(0编辑  收藏  举报