mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
更新 0538.将二叉搜索树转换为累加树 排版格式修复
This commit is contained in:
@ -44,11 +44,11 @@
|
|||||||
* 树中的所有值 互不相同 。
|
* 树中的所有值 互不相同 。
|
||||||
* 给定的树为二叉搜索树。
|
* 给定的树为二叉搜索树。
|
||||||
|
|
||||||
# 算法公开课
|
## 算法公开课
|
||||||
|
|
||||||
**《代码随想录》算法视频公开课:[普大喜奔!二叉树章节已全部更完啦!| LeetCode:538.把二叉搜索树转换为累加树](https://www.bilibili.com/video/BV1d44y1f7wP?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[普大喜奔!二叉树章节已全部更完啦!| LeetCode:538.把二叉搜索树转换为累加树](https://www.bilibili.com/video/BV1d44y1f7wP?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
||||||
|
|
||||||
# 思路
|
## 思路
|
||||||
|
|
||||||
一看到累加树,相信很多小伙伴都会疑惑:如何累加?遇到一个节点,然后再遍历其他节点累加?怎么一想这么麻烦呢。
|
一看到累加树,相信很多小伙伴都会疑惑:如何累加?遇到一个节点,然后再遍历其他节点累加?怎么一想这么麻烦呢。
|
||||||
|
|
||||||
@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
那么知道如何遍历这个二叉树,也就迎刃而解了,**从树中可以看出累加的顺序是右中左,所以我们需要反中序遍历这个二叉树,然后顺序累加就可以了**。
|
那么知道如何遍历这个二叉树,也就迎刃而解了,**从树中可以看出累加的顺序是右中左,所以我们需要反中序遍历这个二叉树,然后顺序累加就可以了**。
|
||||||
|
|
||||||
## 递归
|
### 递归
|
||||||
|
|
||||||
遍历顺序如图所示:
|
遍历顺序如图所示:
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## 迭代法
|
### 迭代法
|
||||||
|
|
||||||
迭代法其实就是中序模板题了,在[二叉树:前中后序迭代法](https://programmercarl.com/二叉树的迭代遍历.html)和[二叉树:前中后序统一方式迭代法](https://programmercarl.com/二叉树的统一迭代法.html)可以选一种自己习惯的写法。
|
迭代法其实就是中序模板题了,在[二叉树:前中后序迭代法](https://programmercarl.com/二叉树的迭代遍历.html)和[二叉树:前中后序统一方式迭代法](https://programmercarl.com/二叉树的统一迭代法.html)可以选一种自己习惯的写法。
|
||||||
|
|
||||||
@ -166,17 +166,17 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
# 总结
|
## 总结
|
||||||
|
|
||||||
经历了前面各种二叉树增删改查的洗礼之后,这道题目应该比较简单了。
|
经历了前面各种二叉树增删改查的洗礼之后,这道题目应该比较简单了。
|
||||||
|
|
||||||
**好了,二叉树已经接近尾声了,接下来就是要对二叉树来一个大总结了**。
|
**好了,二叉树已经接近尾声了,接下来就是要对二叉树来一个大总结了**。
|
||||||
|
|
||||||
|
|
||||||
# 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
|
||||||
## Java
|
### Java
|
||||||
**递归**
|
**递归**
|
||||||
|
|
||||||
```Java
|
```Java
|
||||||
@ -237,7 +237,7 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Python
|
### Python
|
||||||
递归法(版本一)
|
递归法(版本一)
|
||||||
```python
|
```python
|
||||||
# Definition for a binary tree node.
|
# Definition for a binary tree node.
|
||||||
@ -318,7 +318,7 @@ class Solution:
|
|||||||
self.traversal(root)
|
self.traversal(root)
|
||||||
return root
|
return root
|
||||||
|
|
||||||
```
|
```
|
||||||
迭代法(版本二)
|
迭代法(版本二)
|
||||||
```python
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
@ -338,9 +338,9 @@ class Solution:
|
|||||||
pre = cur.val
|
pre = cur.val
|
||||||
cur =cur.left
|
cur =cur.left
|
||||||
return root
|
return root
|
||||||
```
|
```
|
||||||
|
|
||||||
## Go
|
### Go
|
||||||
|
|
||||||
弄一个sum暂存其和值
|
弄一个sum暂存其和值
|
||||||
```go
|
```go
|
||||||
@ -362,7 +362,7 @@ func traversal(cur *TreeNode) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
### JavaScript
|
||||||
|
|
||||||
递归
|
递归
|
||||||
```javascript
|
```javascript
|
||||||
@ -401,7 +401,7 @@ var convertBST = function (root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
##C
|
### C
|
||||||
|
|
||||||
递归
|
递归
|
||||||
```c
|
```c
|
||||||
@ -422,7 +422,7 @@ struct TreeNode* convertBST(struct TreeNode* root){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## TypeScript
|
### TypeScript
|
||||||
|
|
||||||
> 递归法
|
> 递归法
|
||||||
|
|
||||||
@ -462,7 +462,7 @@ function convertBST(root: TreeNode | null): TreeNode | null {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## Scala
|
### Scala
|
||||||
|
|
||||||
```scala
|
```scala
|
||||||
object Solution {
|
object Solution {
|
||||||
@ -481,7 +481,7 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## rust
|
### Rust
|
||||||
|
|
||||||
递归:
|
递归:
|
||||||
|
|
||||||
@ -535,3 +535,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