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

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

全部评论

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务