Validate Binary Search Tree
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 be binary search trees.
Example 1:
Example 2:
Analysis
考虑到如上图情形,BST其实要求的是left subtree的所有node的值都比root node的值小,right subtree所有的node的值都比root node的值大,所以上图中的BST并不valid,因为 2 > 3
对于每个node而言,其取值有一个区间,由parent node和grand parent node共同确定,比如上图中的情形,则node 5的left subtree取值范围为开区间(3, 5)
可以定义一个递归的辅助函数:
传入min,max来限定子树的取值区间
Solution
Time Complexity -- O(n)
Space Complexity - O(n) (recursive call stack)
Last updated