刷题日记1:递归里面的判断要小心

19 阅读1分钟

leetcode.cn/problems/co…

我看这道题的时候看了很多遍,确定了是不可能是空节点的,因为条件限制里面至少有一个节点,所以习惯性的把这个函数里面的条件给删掉了,但是一直调用不到尽头,后面才之后少了条件,因为递归一定要有终止条件的,我给当成寻常函数了;

var buildTree = function(inorder, postorder) {
    if (!inorder.length) return null;
    let root=postorder.pop()
    let r=new TreeNode(root)
    let rootIndex=inorder.indexOf(root)
    r.left=buildTree(inorder.slice(0,rootIndex),postorder.slice(0,rootIndex))
    r.right=buildTree(inorder.slice(rootIndex+1),postorder.slice(rootIndex))
    return r
};