题解 | #合并二叉树#

合并二叉树

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) {
    return bfs(t1, t2);
}

function dfs(r1, r2) {
    if (!r1 && !r2) {
        return null;
    }

    if (!r1) {
        return r2;
    }

    if (!r2) {
        return r1;
    }

    r1.val += r2.val;

    r1.left = dfs(r1.left, r2.left);
    r1.right = dfs(r1.right, r2.right);

    return r1;
}

function bfs(r1, r2) {
    if (!r1 && !r2) {
        return null;
    }

    if (!r1) {
        return r2;
    }

    if (!r2) {
        return r1;
    }

    const queue = [r1, r2];

    while (queue.length) {
        const n1 = queue.shift();
        const n2 = queue.shift();

        n1.val += n2.val;

        if (n1.left && n2.left) {
            queue.push(n1.left, n2.left);
        }

        if (n1.right && n2.right) {
            queue.push(n1.right, n2.right);
        }

        if (!n1.left && n2.left) {
            n1.left = n2.left;
        }

        if (!n1.right && n2.right) {
            n1.right = n2.right;
        }
    }

    return r1;
}

module.exports = {
    mergeTrees: mergeTrees,
};

全部评论

相关推荐

Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
07-02 13:50
闽江学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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