题解 | #合并二叉树#

合并二叉树

http://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759

  1. 先判断两个根节点是否为空
  2. 将节点都合并至t1上
  3. 返回结果
import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param t1 TreeNode类 
     * @param t2 TreeNode类 
     * @return TreeNode类
     */
    public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
        // 两节点存在一个为null,返回另一个
        if(t1==null ^ t2==null){
            return t1==null ? t2: t1;
        }
        // 都为null 直接返回
        if(t1 == null && t2 == null){
            return null;
        }
        merge(t1,t2);
        return t1;
        
    }
    //合并方法,将值都合并到t1
    public static void merge(TreeNode t1, TreeNode t2){
        //这里只需判断节点2 是否为空,为空直接返回即可
        if(t2 == null){
            return ;
        }
        if(t1!=null && t2!=null){
            t1.val = t1.val+t2.val;
            
            if(t1.left == null){
                t1.left =t2.left;
                t2.left = null;
            }
            if(t1.right == null){
                t1.right = t2.right;
                t2.right = null;
            }
        }
        merge(t1.left,t2.left);
        merge(t1.right,t2.right);
    }
    
}
全部评论

相关推荐

头像
03-20 22:00
重庆大学 Java
适彼乐土:“他们不行再找你” 最后的底牌吗?有点意思
点赞 评论 收藏
分享
Beeee0927:正确的建议
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务