mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2026-02-02 18:39:09 +08:00
Update
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<p align="center"><strong>欢迎大家<a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
||||
|
||||
|
||||
## 538.把二叉搜索树转换为累加树
|
||||
# 538.把二叉搜索树转换为累加树
|
||||
|
||||
[力扣题目链接](https://leetcode-cn.com/problems/convert-bst-to-greater-tree/)
|
||||
|
||||
@@ -23,20 +23,20 @@
|
||||
|
||||

|
||||
|
||||
输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
|
||||
输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
|
||||
* 输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
|
||||
* 输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
|
||||
|
||||
示例 2:
|
||||
输入:root = [0,null,1]
|
||||
输出:[1,null,1]
|
||||
* 输入:root = [0,null,1]
|
||||
* 输出:[1,null,1]
|
||||
|
||||
示例 3:
|
||||
输入:root = [1,0,2]
|
||||
输出:[3,3,2]
|
||||
* 输入:root = [1,0,2]
|
||||
* 输出:[3,3,2]
|
||||
|
||||
示例 4:
|
||||
输入:root = [3,2,4,1]
|
||||
输出:[7,9,4,10]
|
||||
* 输入:root = [3,2,4,1]
|
||||
* 输出:[7,9,4,10]
|
||||
|
||||
提示:
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
* 树中的所有值 互不相同 。
|
||||
* 给定的树为二叉搜索树。
|
||||
|
||||
## 思路
|
||||
# 思路
|
||||
|
||||
一看到累加树,相信很多小伙伴都会疑惑:如何累加?遇到一个节点,然后在遍历其他节点累加?怎么一想这么麻烦呢。
|
||||
|
||||
@@ -162,17 +162,17 @@ public:
|
||||
};
|
||||
```
|
||||
|
||||
## 总结
|
||||
# 总结
|
||||
|
||||
经历了前面各种二叉树增删改查的洗礼之后,这道题目应该比较简单了。
|
||||
|
||||
**好了,二叉树已经接近尾声了,接下来就是要对二叉树来一个大总结了**。
|
||||
|
||||
|
||||
## 其他语言版本
|
||||
# 其他语言版本
|
||||
|
||||
|
||||
Java:
|
||||
## Java
|
||||
```Java
|
||||
class Solution {
|
||||
int sum;
|
||||
@@ -195,15 +195,10 @@ class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
Python:
|
||||
```python3
|
||||
# Definition for a binary tree node.
|
||||
# class TreeNode:
|
||||
# def __init__(self, val=0, left=None, right=None):
|
||||
# self.val = val
|
||||
# self.left = left
|
||||
# self.right = right
|
||||
#递归法
|
||||
## Python
|
||||
|
||||
递归法
|
||||
```python
|
||||
class Solution:
|
||||
def convertBST(self, root: TreeNode) -> TreeNode:
|
||||
def buildalist(root):
|
||||
@@ -216,10 +211,10 @@ class Solution:
|
||||
buildalist(root)
|
||||
return root
|
||||
```
|
||||
Go:
|
||||
|
||||
## Go
|
||||
|
||||
> 弄一个sum暂存其和值
|
||||
弄一个sum暂存其和值
|
||||
|
||||
```go
|
||||
//右中左
|
||||
@@ -239,23 +234,10 @@ func RightMLeft(root *TreeNode,sum *int) *TreeNode {
|
||||
}
|
||||
```
|
||||
|
||||
JavaScript版本
|
||||
|
||||
> 递归
|
||||
## JavaScript
|
||||
|
||||
递归
|
||||
```javascript
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* function TreeNode(val, left, right) {
|
||||
* this.val = (val===undefined ? 0 : val)
|
||||
* this.left = (left===undefined ? null : left)
|
||||
* this.right = (right===undefined ? null : right)
|
||||
* }
|
||||
*/
|
||||
/**
|
||||
* @param {TreeNode} root
|
||||
* @return {TreeNode}
|
||||
*/
|
||||
var convertBST = function(root) {
|
||||
let pre = 0;
|
||||
const ReverseInOrder = (cur) => {
|
||||
@@ -271,21 +253,8 @@ var convertBST = function(root) {
|
||||
};
|
||||
```
|
||||
|
||||
> 迭代
|
||||
|
||||
迭代
|
||||
```javascript
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* function TreeNode(val, left, right) {
|
||||
* this.val = (val===undefined ? 0 : val)
|
||||
* this.left = (left===undefined ? null : left)
|
||||
* this.right = (right===undefined ? null : right)
|
||||
* }
|
||||
*/
|
||||
/**
|
||||
* @param {TreeNode} root
|
||||
* @return {TreeNode}
|
||||
*/
|
||||
var convertBST = function (root) {
|
||||
let pre = 0;
|
||||
let cur = root;
|
||||
|
||||
Reference in New Issue
Block a user