后序遍历构造二叉搜索树

53 阅读1分钟
public Node getNode(int[] postorder, int start, int end) {
        if(start > end) return null;
        Node node = new Node(postorder[end]);
        if(start == end) return node;
        int index = end-1;
        while(index >= start && postorder[index] > postorder[end]) {
            //这里需要index>=start
            index--;
        }
        node.left = getNode(postorder, start, index);
        node.right = getNode(postorder, index+1, end - 1);
        return node;
    }