This commit is contained in:
2026-06-22 20:50:10 +10:00
parent b63ad2d95d
commit 5c25a2e856
7 changed files with 218 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
package top100liked
// https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/?envType=study-plan-v2&envId=top-100-liked
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func sortedArrayToBST(nums []int) *TreeNode {
if len(nums) == 0 {
return nil
}
if len(nums) == 1 {
return &TreeNode{Val: nums[0]}
}
if len(nums) == 2 {
return &TreeNode{Val: nums[1], Left: &TreeNode{Val: nums[0]}}
}
rootIdx := len(nums) / 2
rootVal := nums[rootIdx]
root := &TreeNode{Val: rootVal}
root.Left = sortedArrayToBST(nums[:rootIdx])
root.Right = sortedArrayToBST(nums[rootIdx+1:])
return root
}