mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
update 0108.将有序数组转换为二叉搜索树: 优化go 和 js 代码
This commit is contained in:
@ -35,7 +35,7 @@
|
||||
|
||||
因为只要给我们一个有序数组,如果强调平衡,都可以以线性结构来构造二叉搜索树。
|
||||
|
||||
例如 有序数组[-10,-3,0,5,9] 可以就可以构造成这样的二叉搜索树,如图。
|
||||
例如 有序数组[-10,-3,0,5,9] 就可以构造成这样的二叉搜索树,如图。
|
||||
|
||||

|
||||
|
||||
@ -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
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user