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)
}

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

全部评论

相关推荐

点赞 评论 收藏
分享
就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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