leetcode 98. 验证二叉搜索树
2018-03-10 22:08
465 查看
给定一个二叉树,判断其是否是一个有效的二叉搜索树。一个二叉搜索树有如下定义:左子树只包含小于当前节点的数。
右子树只包含大于当前节点的数。
所有子树自身必须也是二叉搜索树。
示例 1: 2
/ \
1 3
二叉树
/ \
2 3
二叉树
啊我有点蠢了。。中序遍历做/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isValidBST(TreeNode* root) {
if (root) {
long long f = -0x3f3f3f3f3f3f;
return dfs(root, f);
}
else
return true;
}
bool dfs(TreeNode* root, long long& f_val) {
bool res = true;
if (root) {
res &= dfs(root->left, f_val) && (root->val > f_val);
if (!res)
return false;
f_val
4000
= root->val;
res &= dfs(root->right, f_val);
}
return res;
}
};
右子树只包含大于当前节点的数。
所有子树自身必须也是二叉搜索树。
示例 1: 2
/ \
1 3
二叉树
[2,1,3], 返回 true.示例 2: 1
/ \
2 3
二叉树
[1,2,3], 返回 false.
啊我有点蠢了。。中序遍历做/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isValidBST(TreeNode* root) {
if (root) {
long long f = -0x3f3f3f3f3f3f;
return dfs(root, f);
}
else
return true;
}
bool dfs(TreeNode* root, long long& f_val) {
bool res = true;
if (root) {
res &= dfs(root->left, f_val) && (root->val > f_val);
if (!res)
return false;
f_val
4000
= root->val;
res &= dfs(root->right, f_val);
}
return res;
}
};
相关文章推荐
- Leetcode 98. Validate Binary Search Tree 验证二叉搜索树 解题报告
- [LeetCode] Validate Binary Search Tree 验证二叉搜索树
- leetcode-验证二叉搜索树
- [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列
- [Leetcode] Validate binary search tree 验证二叉搜索树
- [LeetCode] 98. Validate Binary Search Tree 验证二叉搜索树
- [LeetCode] 255. Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列
- [leetcode 255] Verify Preorder Sequence in Binary Search Tree ---先序遍历验证二叉搜索树
- leet98. 验证二叉搜索树
- 【LeetCode-面试算法经典-Java实现】【098-Validate Binary Search Tree(验证二叉搜索树)】
- [LeetCode 109] - 将已排序链表转换为二叉搜索树 (Convert Sorted List to Binary Search Tree)
- leetcode 98. Validate Binary Search Tree
- LeetCode 530. Minimum Absolute Difference in BST (二叉搜索树中最小绝对差)
- Leetcode014--括号验证匹配
- LeetCode 333. Largest BST Subtree(最大二叉搜索树)
- [LeetCode] Convert Sorted List to Binary Search Tree 将有序链表转为二叉搜索树
- [LeetCode] 125. Valid Palindrome 验证回文字符串
- [Leetcode] Unique binary search trees 唯一二叉搜索树
- [LeetCode]98. SortColors颜色排序
- leetcode-125. Valid Palindrome(验证含有标点符号String是否为回文串)