mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
更新 0098.验证二叉搜索树 排版格式修复
This commit is contained in:
@ -20,18 +20,18 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
# 视频讲解
|
## 算法公开课
|
||||||
|
|
||||||
**《代码随想录》算法视频公开课:[你对二叉搜索树了解的还不够! | LeetCode:98.验证二叉搜索树](https://www.bilibili.com/video/BV18P411n7Q4),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[你对二叉搜索树了解的还不够! | LeetCode:98.验证二叉搜索树](https://www.bilibili.com/video/BV18P411n7Q4),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
||||||
|
|
||||||
|
|
||||||
# 思路
|
## 思路
|
||||||
|
|
||||||
要知道中序遍历下,输出的二叉搜索树节点的数值是有序序列。
|
要知道中序遍历下,输出的二叉搜索树节点的数值是有序序列。
|
||||||
|
|
||||||
有了这个特性,**验证二叉搜索树,就相当于变成了判断一个序列是不是递增的了。**
|
有了这个特性,**验证二叉搜索树,就相当于变成了判断一个序列是不是递增的了。**
|
||||||
|
|
||||||
## 递归法
|
### 递归法
|
||||||
|
|
||||||
可以递归中序遍历将二叉搜索树转变成一个数组,代码如下:
|
可以递归中序遍历将二叉搜索树转变成一个数组,代码如下:
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ public:
|
|||||||
|
|
||||||
最后这份代码看上去整洁一些,思路也清晰。
|
最后这份代码看上去整洁一些,思路也清晰。
|
||||||
|
|
||||||
## 迭代法
|
### 迭代法
|
||||||
|
|
||||||
可以用迭代法模拟二叉树中序遍历,对前中后序迭代法生疏的同学可以看这两篇[二叉树:听说递归能做的,栈也能做!](https://programmercarl.com/二叉树的迭代遍历.html),[二叉树:前中后序迭代方式统一写法](https://programmercarl.com/二叉树的统一迭代法.html)
|
可以用迭代法模拟二叉树中序遍历,对前中后序迭代法生疏的同学可以看这两篇[二叉树:听说递归能做的,栈也能做!](https://programmercarl.com/二叉树的迭代遍历.html),[二叉树:前中后序迭代方式统一写法](https://programmercarl.com/二叉树的统一迭代法.html)
|
||||||
|
|
||||||
@ -245,7 +245,7 @@ public:
|
|||||||
|
|
||||||
在[二叉树:二叉搜索树登场!](https://programmercarl.com/0700.二叉搜索树中的搜索.html)中我们分明写出了痛哭流涕的简洁迭代法,怎么在这里不行了呢,因为本题是要验证二叉搜索树啊。
|
在[二叉树:二叉搜索树登场!](https://programmercarl.com/0700.二叉搜索树中的搜索.html)中我们分明写出了痛哭流涕的简洁迭代法,怎么在这里不行了呢,因为本题是要验证二叉搜索树啊。
|
||||||
|
|
||||||
# 总结
|
## 总结
|
||||||
|
|
||||||
这道题目是一个简单题,但对于没接触过的同学还是有难度的。
|
这道题目是一个简单题,但对于没接触过的同学还是有难度的。
|
||||||
|
|
||||||
@ -254,10 +254,10 @@ public:
|
|||||||
只要把基本类型的题目都做过,总结过之后,思路自然就开阔了。
|
只要把基本类型的题目都做过,总结过之后,思路自然就开阔了。
|
||||||
|
|
||||||
|
|
||||||
# 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
|
||||||
## Java
|
### Java
|
||||||
|
|
||||||
```Java
|
```Java
|
||||||
//使用統一迭代法
|
//使用統一迭代法
|
||||||
@ -369,7 +369,7 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Python
|
### Python
|
||||||
|
|
||||||
递归法(版本一)利用中序递增性质,转换成数组
|
递归法(版本一)利用中序递增性质,转换成数组
|
||||||
```python
|
```python
|
||||||
@ -479,7 +479,7 @@ class Solution:
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Go
|
### Go
|
||||||
|
|
||||||
```Go
|
```Go
|
||||||
func isValidBST(root *TreeNode) bool {
|
func isValidBST(root *TreeNode) bool {
|
||||||
@ -526,7 +526,7 @@ func isValidBST(root *TreeNode) bool {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
### JavaScript
|
||||||
|
|
||||||
辅助数组解决
|
辅助数组解决
|
||||||
|
|
||||||
@ -595,7 +595,7 @@ var isValidBST = function (root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## TypeScript
|
### TypeScript
|
||||||
|
|
||||||
> 辅助数组解决:
|
> 辅助数组解决:
|
||||||
|
|
||||||
@ -637,7 +637,7 @@ function isValidBST(root: TreeNode | null): boolean {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## Scala
|
### Scala
|
||||||
|
|
||||||
辅助数组解决:
|
辅助数组解决:
|
||||||
```scala
|
```scala
|
||||||
@ -682,7 +682,7 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## rust
|
### Rust
|
||||||
|
|
||||||
递归:
|
递归:
|
||||||
|
|
||||||
@ -735,3 +735,4 @@ impl Solution {
|
|||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user