
1 利用preorder的特性:遍历preorder,如果当前值小于栈顶值,说明该值是栈顶元素左子树的值,将其压入栈中,如果大于栈顶值,则说明某节点的左子树已经遍历结束,是某元素右子树的值,需pop() stack top的数,并用stack top的值更新lower_bound,且后面遍历的所有数都必须大于这个lower_bound,这个比较、弹出、更新lower_bound的过程一直进行知道当前遍历的值小于stack top。

1 利用preorder的特性:遍历preorder,如果当前值小于栈顶值,说明该值是栈顶元素左子树的值,将其压入栈中,如果大于栈顶值,则说明某节点的左子树已经遍历结束,是某元素右子树的值,需pop() stack top的数,并用stack top的值更新lower_bound,且后面遍历的所有数都必须大于这个lower_bound,这个比较、弹出、更新lower_bound的过程一直进行知道当前遍历的值小于stack top。