leetcode [面试题04.05] 合法化二叉搜索树
Contact me:
Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub
实现一个函数,检查一棵二叉树是否为二叉搜索树。
示例 1:
输入:
2
/ \
1 3
输出: true
示例 2:
输入:
5
/ \
1 4
/ \
3 6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4 。
class Solution:
def isValidBST(self, root: TreeNode) -> bool:
buff = []
def inorder(root):
nonlocal buff
if not root: return
inorder(root.left)
buff.append(root.val)
inorder(root.right)
inorder(root)
for i in range(len(buff) - 1):
if buff[i] >= buff[i + 1]:
return False
return True