用时 10min
直接用二叉搜索树中序遍历递增的性质就好了
- 中序遍历找到左孩子
- pre 是否存在
- 不存在,赋值 ,找右孩子,返回 1
- 存在,是否比 val 小
- 是,非递增,返回 false
- 否,递增,赋值 pre ,返回 1
var isValidBST = function(root) {
var preVal = null var DFS = function(root) {
var left = true var right = true if (root.left) {
left = DFS(root.left)
}
if (preVal !== null) {
if (preVal >= root.val) return false preVal = root.val } else {
preVal = root.val }
if (root.right) {
right = DFS(root.right)
}
return left && right
}
return DFS(root)
};