JavaScript题解 | #合并二叉树#

合并二叉树

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

/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */

/**
 *
 * @param t1 TreeNode类
 * @param t2 TreeNode类
 * @return TreeNode类
 */
function mergeTrees(t1, t2) {
    if(!t1) {
        return t2;
    } else if (!t2) {
        return t1;
    } else if (!t1 && !t2) {
        return null;
    }

    const val = t1.val + t2.val;
    let node = new TreeNode(val);
    
    node.left =  mergeTrees(t1.left, t2.left);
    node.right = mergeTrees(t1.right, t2.right);

    return node;
}
module.exports = {
    mergeTrees,
};

思路:

对于一个节点

node = {
  val: t1 && t2 都存在时, val = t1.val + t2.val; 都不存在时为null,只有一个时为存在的那个,
  left: mergeTreeNode(t1.left, t2.left),
  right: mergeTreeNode(t1.right, t2.right)
}

递归完成两棵树所有的节点

全部评论

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务