mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
更新 0450.删除二叉搜索树中的节点 排版格式修复
This commit is contained in:
@ -24,15 +24,15 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
# 算法公开课
|
## 算法公开课
|
||||||
|
|
||||||
**《代码随想录》算法视频公开课:[调整二叉树的结构最难!| LeetCode:450.删除二叉搜索树中的节点](https://www.bilibili.com/video/BV1tP41177us?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[调整二叉树的结构最难!| LeetCode:450.删除二叉搜索树中的节点](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
|
```java
|
||||||
class Solution {
|
class Solution {
|
||||||
public TreeNode deleteNode(TreeNode root, int key) {
|
public TreeNode deleteNode(TreeNode root, int key) {
|
||||||
@ -323,7 +323,7 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Python
|
### Python
|
||||||
递归法(版本一)
|
递归法(版本一)
|
||||||
```python
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
@ -411,7 +411,7 @@ class Solution:
|
|||||||
return root
|
return root
|
||||||
```
|
```
|
||||||
|
|
||||||
## Go
|
### Go
|
||||||
```Go
|
```Go
|
||||||
// 递归版本
|
// 递归版本
|
||||||
func deleteNode(root *TreeNode, key int) *TreeNode {
|
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
|
```scala
|
||||||
object Solution {
|
object Solution {
|
||||||
@ -682,7 +682,7 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## rust
|
### Rust
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
impl Solution {
|
impl Solution {
|
||||||
@ -720,3 +720,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