更新 0450.删除二叉搜索树中的节点 排版格式修复

This commit is contained in:
jinbudaily
2023-07-23 18:56:18 +08:00
parent 70271161ff
commit 0f22ada3df

View File

@ -24,15 +24,15 @@
![450.删除二叉搜索树中的节点](https://code-thinking-1253855093.file.myqcloud.com/pics/20201020171048265.png)
# 算法公开课
## 算法公开课
**《代码随想录》算法视频公开课:[调整二叉树的结构最难!| LeetCode450.删除二叉搜索树中的节点](https://www.bilibili.com/video/BV1tP41177us?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[调整二叉树的结构最难!| LeetCode450.删除二叉搜索树中的节点](https://www.bilibili.com/video/BV1tP41177us?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
# 思路
## 思路
搜索树的节点删除要比节点增加复杂的多,有很多情况需要考虑,做好心理准备。
## 递归
### 递归
递归三部曲:
@ -161,7 +161,7 @@ public:
};
```
## 普通二叉树的删除方式
### 普通二叉树的删除方式
这里我在介绍一种通用的删除,普通二叉树的删除方式(没有使用搜索树的特性,遍历整棵树),用交换值的操作来删除目标节点。
@ -198,7 +198,7 @@ public:
这个代码是简短一些,思路也巧妙,但是不太好想,实操性不强,推荐第一种写法!
## 迭代法
### 迭代法
删除节点的迭代法还是复杂一些的,但其本质我在递归法里都介绍了,最关键就是删除节点的操作(动画模拟的过程)
@ -246,7 +246,7 @@ public:
};
```
# 总结
## 总结
读完本篇,大家会发现二叉搜索树删除节点比增加节点复杂的多。
@ -264,10 +264,10 @@ public:
迭代法其实不太容易写出来,所以如果是初学者的话,彻底掌握第一种递归写法就够了。
# 其他语言版本
## 其他语言版本
## Java
### Java
```java
class Solution {
public TreeNode deleteNode(TreeNode root, int key) {
@ -323,7 +323,7 @@ class Solution {
}
```
## Python
### Python
递归法(版本一)
```python
class Solution:
@ -411,7 +411,7 @@ class Solution:
return root
```
## Go
### Go
```Go
// 递归版本
func deleteNode(root *TreeNode, key int) *TreeNode {
@ -497,7 +497,7 @@ func deleteNode(root *TreeNode, key int) *TreeNode {
}
```
## JavaScript
### JavaScript
递归
@ -588,7 +588,7 @@ var deleteNode = function (root, key) {
}
```
## TypeScript
### TypeScript
> 递归法:
@ -652,7 +652,7 @@ function deleteNode(root: TreeNode | null, key: number): TreeNode | null {
};
```
## Scala
### Scala
```scala
object Solution {
@ -682,7 +682,7 @@ object Solution {
}
```
## rust
### Rust
```rust
impl Solution {
@ -720,3 +720,4 @@ impl Solution {
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a>