[leetcode]python3 演算法攻略-驗證二叉搜尋樹
阿新 • • 發佈:2018-12-24
給定一個二叉樹,判斷其是否是一個有效的二叉搜尋樹。
一個二叉搜尋樹具有如下特徵:
- 節點的左子樹只包含小於當前節點的數。
- 節點的右子樹只包含大於當前節點的數。
- 所有左子樹和右子樹自身必須也是二叉搜尋樹。
方案一:構建一個輔助函式,把當前節點的值,傳遞給子節點,在子節點中進行比較
class Solution(object): def validBST(self,root,small,large): if root == None: return True if small >= root.val or large <= root.val: return False return self.validBST(root.left, small, root.val) and self.validBST(root.right, root.val, large) def isValidBST(self, root): """ :type root: TreeNode :rtype: bool """ return self.validBST(root, -2**32, 2**32-1)