Title |
Validate Binary Search Tree |
Pass Rate |
21.9% |
Difficulty |
Medium |
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.
Confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
The subject is to determine whether a tree is a two-fork sorting tree, left < < Right, you can use the middle sequence traversal to judge, you can also use a range value to determine whether the current node is in it, the lower bound of the range is the left tree, the right side of the range is the tree, directly see the code:
1 /**2 * Definition for binary tree3 * public class TreeNode {4 * int val;5 * TreeNode left;6 * TreeNode right;7 * TreeNode (int x) {val = x;}8 * }9 */Ten Public classSolution { One Public BooleanIsvalidbst (TreeNode root) { A returnIsbst (root,long.min_value,long.max_value); - } - Public BooleanIsbst (TreeNode root,LongMinLongmax) { the if(root==NULL)return true; - if(root.val<=min| | Root.val>=max)return false; - returnIsbst (Root.left,min,root.val) &&Isbst (Root.right,root.val,max); - + } -}
Leetcode------Validate Binary Search Tree