Leetcode 98. Validate Binary Search Tree
2018-02-07 08:46
501 查看
原题:
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:
Binary tree
Example 2:
Binary tree
解决方法:
一棵树是BST,遵循规则:
- 左边子树的值一定小于根节点;
- 右边子树的值一定大于根节点;
- 左右子树都是BST。
根据这个特性,我们只需把最大最小值传入到函数中进行限定判断即可:根节点的值是左边子树的最大值,是右边子树的最小值。
代码:
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:
2 / \ 1 3
Binary tree
[2,1,3], return true.
Example 2:
1 / \ 2 3
Binary tree
[1,2,3], return false.
解决方法:
一棵树是BST,遵循规则:
- 左边子树的值一定小于根节点;
- 右边子树的值一定大于根节点;
- 左右子树都是BST。
根据这个特性,我们只需把最大最小值传入到函数中进行限定判断即可:根节点的值是左边子树的最大值,是右边子树的最小值。
代码:
bool isValidBST(TreeNode* root, TreeNode* minValue, TreeNode* maxValue){ if (!root) return true; if ( (minValue && root->val <= minValue->val) || (maxValue && root->val >= maxValue->val) ) return false; return isValidBST(root->left, minValue, root) && isValidBST(root->right, root, maxValue); } bool isValidBST(TreeNode* root) { return isValidBST(root, NULL, NULL); }
相关文章推荐
- leetcode 98. Validate Binary Search Tree
- [LeetCode]98. Validate Binary Search Tree
- leetcode-java-98. Validate Binary Search Tree
- [Leetcode]@python 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- leetcode - 98.Validate Binary Search Tree
- LeetCode --- 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- 第十八周:[Leetcode]98. Validate Binary Search Tree
- leetcode-98. Validate Binary Search Tree
- [Leetcode] 98. Validate Binary Search Tree
- LeetCode *** 98. Validate Binary Search Tree
- Leetcode 98. Validate Binary Search Tree
- Leetcode 98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- 个人记录-LeetCode 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree