Skip to the content.

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