update 0108.将有序数组转换为二叉搜索树: 优化go 和 js 代码

This commit is contained in:
Yuhao Ju
2022-12-05 15:39:02 +08:00
committed by GitHub
parent 10302b0a14
commit 57c41cd670

View File

@ -35,7 +35,7 @@
因为只要给我们一个有序数组,如果强调平衡,都可以以线性结构来构造二叉搜索树。
例如 有序数组[-10-3059] 可以就可以构造成这样的二叉搜索树,如图。
例如 有序数组[-10-3059] 就可以构造成这样的二叉搜索树,如图。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20220930173553.png)
@ -147,7 +147,7 @@ public:
};
```
**注意在调用traversal的时候为什么传入的left和right为什么是0和nums.size() - 1因为定义的区间为左闭右闭**
**注意在调用traversal的时候传入的left和right为什么是0和nums.size() - 1因为定义的区间为左闭右闭**
## 迭代法
@ -354,10 +354,15 @@ class Solution:
```go
func sortedArrayToBST(nums []int) *TreeNode {
if len(nums)==0{return nil}//终止条件,最后数组为空则可以返回
root:=&TreeNode{nums[len(nums)/2],nil,nil}//按照BSL的特点从中间构造节点
root.Left=sortedArrayToBST(nums[:len(nums)/2])//数组的左边为左子树
root.Right=sortedArrayToBST(nums[len(nums)/2+1:])//数字的右边为右子树
if len(nums) == 0 { //终止条件,最后数组为空则可以返回
return nil
}
idx := len(nums)/2
root := &TreeNode{Val: nums[idx]}
root.Left = sortedArrayToBST(nums[:idx])
root.Right = sortedArrayToBST(nums[idx+1:])
return root
}
```