未验证 提交 6c7cfa4f 编写于 作者: B BruceCat 提交者: GitHub

【98.验证二叉搜索树】【Java】

【98.验证二叉搜索树】【Java】【添加新的解法】
......@@ -121,7 +121,6 @@ boolean isValidBST(TreeNode root, TreeNode min, TreeNode max) {
}
```
**一、在 BST 中查找一个数是否存在**
根据我们的指导思想,可以这样写代码:
......@@ -499,6 +498,30 @@ class Solution:
return node
```
### java
```
/**
* 第【98】题的扩展解法:
* 对于BST,有一个重要的性质,即“BST的中序遍历是单调递增的”。抓住这个性质,我们可以通过中序遍历来判断该二叉树是不是BST。
* 我们定义preNode节点表示上一个遍历的节点,在中序遍历的时候,比较当前节点和preNode节点的大小,一旦有节点小于或等于前一个节点,则不满足BST的规则,直接返回false,否则遍历结束,返回true。
*/
TreeNode preNode = null;
public boolean isValidBST(TreeNode root) {
if (root == null) return true;
boolean leftRes = isValidBST(root.left);
if (preNode != null && root.val <= preNode.val) {
return false;
}
preNode = root;
boolean rightRes = isValidBST(root.right);
return leftRes && rightRes;
}
```
### javascript
......@@ -695,4 +718,3 @@ var deleteNode = function(root, key) {
}
};
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册