题解 | #重建二叉树#

重建二叉树

https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function reConstructBinaryTree(pre, vin)
{
    // write code here
    n = pre.length;
    m = vin.length;
    if(n === 0 && m === 0)
        return null;
    let root = new TreeNode(pre[0]);
    for(let i=0;i<vin.length;i++){
        if(vin[i] === pre[0]){
            let leftPre = pre.slice(1,i+1);
            let leftVin = vin.slice(0,i);
            root.left = reConstructBinaryTree(leftPre,leftVin);

            let rightPre = pre.slice(i+1);
            let rightVin = vin.slice(i+1);
            root.right = reConstructBinaryTree(rightPre,rightVin);

            break;
        }
    }
    return root;
}

module.exports = {
    reConstructBinaryTree : reConstructBinaryTree
};

#我的实习求职记录#
全部评论

相关推荐

点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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