Leetcode 98.Validate Binary Search Tree
来源:互联网 发布:mac os sierra u盘 编辑:程序博客网 时间:2024/06/05 06:29
@author stormma
@date 2017/11/28
生命不息,奋斗不止!
题目
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.
解决方案
递归判断结点的值是否在一个范围内就行了。左子树的值在(null, root.val)范围内(null表示无穷大/小)。右子树的值在(root.val, null)的范围内。
代码实现
static class Solution2 { public boolean isValidBST(Question100.TreeNode root) { return dfs(root, null, null); } private boolean dfs(Question100.TreeNode node, Integer min, Integer max) { if (node == null) { return true; } if ((min != null && node.val <= min) || (max != null &&node.val >= max)) { return false; } return dfs(node.left, min, node.val) && dfs(node.right, node.val, max); } }
另外还有一种方法,可以采用中序遍历的方式来判断结果是否有序来推出是不是一个BST。
阅读全文
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
- 6603网狐棋牌搭建视频教程
- Reusing Code in C++: inheriting and template
- 网络资源积累
- vim的常用指令总结
- HTML表格
- Leetcode 98.Validate Binary Search Tree
- forward和redirect的区别?
- struts2_day01_13_Action的方法访问介绍
- js:代理模式
- Java面试常被问到的题目+解答
- 微信浏览器-复制到剪切板-clipboard.js插件
- linux鸟哥视频学习笔记05
- 原生JS和ES6有点冲突的地方发现
- MQ入门总结(一)消息队列概念和使用场景