Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
- The left subtree of a node contains only nodes with keys less than the node ' s key.
- The right subtree of a node contains only nodes with keys greater than the node ' s key.
- Both the left and right subtrees must also is binary search trees.
Leetcode has given the definition of a two-fork search tree.
classSolution:#@param root, a tree node #@return A Boolean defIsvalidbst (self, root):ifRoot isNone:returnTruereturnSelf.helper (root,-99999,999999) #Left ~ Right is the value range of node defHelper (self,root,left,right):ifRoot isNone:returnTrueifRoot.val <= LeftorRoot.val >=Right :#out of range returnFalsereturnSelf.helper (Root.left,left,root.val) andSelf.helper (Root.right,root.val,right)
After I find the drawing tool, I'll update some of the graphs.
[Leetcode] Validate Binary Search tree (check if it is a two-fork find) Python