98. Validate Binary Search Tree
来源:互联网 发布:java的框架 编辑:程序博客网 时间:2024/05/01 16:04
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 3Binary tree
[2,1,3]
, return true.Example 2:
1 / \ 2 3
Binary tree [1,2,3]
, return 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 == NULL) return true;long long pre = LLONG_MIN;///bool valid = true;dfs(root, pre,valid);return valid;}private:void dfs(TreeNode* root, long long& pre, bool& valid){if (root->left)dfs(root->left, pre,valid);if (root->val <= pre){valid = false;return;}elsepre = root->val;if (valid&&root->right)dfs(root->right, pre,valid);}};
更简洁的方法
class Solution {public: bool isValidBST(TreeNode* root) { TreeNode* prev = NULL; return validate(root, prev); } bool validate(TreeNode* node, TreeNode* &prev) { if (node == NULL) return true; if (!validate(node->left, prev)) return false; if (prev != NULL && prev->val >= node->val) return false; prev = node; return validate(node->right, prev); }};
0 0
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 【Lightoj 1282 Leading and Trailing】
- maven3 手动安装本地jar到仓库
- 安卓中的控件大发现11个总有你需要的
- java多线程
- 【Light-oj】-1138 - Trailing Zeroes (III)(二分,数学)
- 98. Validate Binary Search Tree
- GitHub常用开源框架
- c++模板的问题解析-问题2
- 边之比的平方=面积之比
- Spring 快速学习笔记
- JAVA深入研究——Method的Invoke方法。
- 分享一下书签
- Linux感悟-前言
- 使用javamail发送邮件