leetcode98: 验证二叉搜索树
前中后序遍历均可解决该问题
前序遍历思路:
根 -> 左 -> 右
定义一个区间,根节点是作为左子树的最大值,作为右子树的最小值,层层向下传递;
中序遍历思路
左 -> 根 -> 右
二叉搜索树的中序遍历结果是一个递增的数组。
定义一个变量记录前一个节点(即左子树的值),并与当前值比较大小,并更新变量
后序遍历思路
左 右 根
记录左右子树的最大值和最小值,并与根节点的值做比较,判断根节点的值是否大于左子树的最大值,且小于右子树的最小值。若不成立,则返回false