leetcode 98. Validate Binary Search Tree
来源:互联网 发布:无约束优化问题 编辑:程序博客网 时间:2024/06/16 19:33
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 3Binary 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 check(TreeNode *p, int min, int max) { if (!p) return 1; else if (p->val > max || p->val < min) return 0; TreeNode *l = p->left; TreeNode *r = p->right; if ( (l && p->val <= l->val) || (r && p->val >= r->val) ) //提前比较,当前节点可能是INT_MIN,左子节点就无法再减1,会出现未知错误 return 0; return (check(l, min, p->val - 1) && check(r, p->val + 1, max)); } bool isValidBST(TreeNode* root) { return check( root, INT_MIN, INT_MAX ); } };
阅读全文
0 0
- 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 @python
- Leetcode 98. Validate Binary Search Tree
- [LeetCode]98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- *LeetCode 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree LeetCode
- LeetCode 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- LeetCode *** 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree-leetcode-java
- [leetcode] 98. Validate Binary Search Tree
- LeetCode - 98. Validate Binary Search Tree
- String常用方法
- com.fasterxml.jackson.databind.node.ArrayNode cannot be cast to com.fasterxml.jackson.databind.node.
- UIPageControl更换成图片
- iOS----点赞动画
- C# PDF转为图片的方法
- leetcode 98. Validate Binary Search Tree
- 新建Maven工程webapp项目index.jsp报错解决方法
- 获取图片文件
- 开源实用小巧的Android引导蒙版(浮层)库
- sass学习三--控制指令和表达式
- 读书笔记∣元数据:用数据的数据管理你的世界 Ch.1-2
- mysql 数据字典
- Java虚拟机的内存结构
- Jesus Is Here HDU