mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
更新 0108.将有序数组转换为二叉搜索树 排版格式修复
This commit is contained in:
@ -20,11 +20,11 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
# 算法公开课
|
## 算法公开课
|
||||||
|
|
||||||
**《代码随想录》算法视频公开课:[构造平衡二叉搜索树!| LeetCode:108.将有序数组转换为二叉搜索树](https://www.bilibili.com/video/BV1uR4y1X7qL?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[构造平衡二叉搜索树!| LeetCode:108.将有序数组转换为二叉搜索树](https://www.bilibili.com/video/BV1uR4y1X7qL?share_source=copy_web),相信结合视频在看本篇题解,更有助于大家对本题的理解**。
|
||||||
|
|
||||||
# 思路
|
## 思路
|
||||||
|
|
||||||
做这道题目之前大家可以了解一下这几道:
|
做这道题目之前大家可以了解一下这几道:
|
||||||
|
|
||||||
@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
**这也是题目中强调答案不是唯一的原因。 理解这一点,这道题目算是理解到位了**。
|
**这也是题目中强调答案不是唯一的原因。 理解这一点,这道题目算是理解到位了**。
|
||||||
|
|
||||||
## 递归
|
### 递归
|
||||||
|
|
||||||
递归三部曲:
|
递归三部曲:
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ public:
|
|||||||
**注意:在调用traversal的时候传入的left和right为什么是0和nums.size() - 1,因为定义的区间为左闭右闭**。
|
**注意:在调用traversal的时候传入的left和right为什么是0和nums.size() - 1,因为定义的区间为左闭右闭**。
|
||||||
|
|
||||||
|
|
||||||
## 迭代法
|
### 迭代法
|
||||||
|
|
||||||
迭代法可以通过三个队列来模拟,一个队列放遍历的节点,一个队列放左区间下标,一个队列放右区间下标。
|
迭代法可以通过三个队列来模拟,一个队列放遍历的节点,一个队列放左区间下标,一个队列放右区间下标。
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
# 总结
|
## 总结
|
||||||
|
|
||||||
**在[二叉树:构造二叉树登场!](https://programmercarl.com/0106.从中序与后序遍历序列构造二叉树.html) 和 [二叉树:构造一棵最大的二叉树](https://programmercarl.com/0654.最大二叉树.html)之后,我们顺理成章的应该构造一下二叉搜索树了,一不小心还是一棵平衡二叉搜索树**。
|
**在[二叉树:构造二叉树登场!](https://programmercarl.com/0106.从中序与后序遍历序列构造二叉树.html) 和 [二叉树:构造一棵最大的二叉树](https://programmercarl.com/0654.最大二叉树.html)之后,我们顺理成章的应该构造一下二叉搜索树了,一不小心还是一棵平衡二叉搜索树**。
|
||||||
|
|
||||||
@ -216,10 +216,10 @@ public:
|
|||||||
最后依然给出迭代的方法,其实就是模拟取中间元素,然后不断分割去构造二叉树的过程。
|
最后依然给出迭代的方法,其实就是模拟取中间元素,然后不断分割去构造二叉树的过程。
|
||||||
|
|
||||||
|
|
||||||
# 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
|
||||||
## Java
|
### Java
|
||||||
|
|
||||||
递归: 左闭右开 [left,right)
|
递归: 左闭右开 [left,right)
|
||||||
```Java
|
```Java
|
||||||
@ -315,7 +315,7 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Python
|
### Python
|
||||||
递归法
|
递归法
|
||||||
```python
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
@ -377,7 +377,7 @@ class Solution:
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Go
|
### Go
|
||||||
|
|
||||||
递归(隐含回溯)
|
递归(隐含回溯)
|
||||||
|
|
||||||
@ -396,7 +396,7 @@ func sortedArrayToBST(nums []int) *TreeNode {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
### JavaScript
|
||||||
递归
|
递归
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -453,7 +453,7 @@ var sortedArrayToBST = function(nums) {
|
|||||||
return root;
|
return root;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
## TypeScript
|
### TypeScript
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
function sortedArrayToBST(nums: number[]): TreeNode | null {
|
function sortedArrayToBST(nums: number[]): TreeNode | null {
|
||||||
@ -469,7 +469,7 @@ function sortedArrayToBST(nums: number[]): TreeNode | null {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## C
|
### C
|
||||||
|
|
||||||
递归
|
递归
|
||||||
```c
|
```c
|
||||||
@ -490,7 +490,7 @@ struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Scala
|
### Scala
|
||||||
|
|
||||||
递归:
|
递归:
|
||||||
|
|
||||||
@ -511,7 +511,7 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## rust
|
### Rust
|
||||||
|
|
||||||
递归:
|
递归:
|
||||||
|
|
||||||
@ -536,3 +536,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