LeetCode 98検証二叉探索ツリーPython

1060 ワード

2つのツリーを指定し、有効な2つのツリーであるかどうかを判断します.
二叉検索ツリーには、次のような特徴があります.
  • ノードの左サブツリーには、現在のノードより小さい数しか含まれていません.
  • ノードの右サブツリーには、現在のノードより大きい数しか含まれていません.
  • すべての左サブツリーと右サブツリー自体も二叉検索ツリーである必要があります.

  • 例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):
            def inorderTraversal(root): 
                if root == None:
                    return []
                res = []
                res += inorderTraversal(root.left)
                res.append(root.val)
                res += inorderTraversal(root.right)
                return res
    
            res = inorderTraversal(root)
            if res != sorted(list(set(res))): return False
            return True