# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def isValidBST(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
traverse = []
self.inorder(root, traverse)
for i in range(1, len(traverse)): # 为保证 i - 1 不会出界,从 index = 1 开始
if traverse[i] <= traverse[i - 1]:
return False
return True
def inorder(self, root, traverse): # recursive 一般写到最后一个 None 节点再判断比较简洁
if not root:
return None
self.inorder(root.left, traverse)
traverse.append(root.val)
self.inorder(root.right, traverse)