lc-go/solutions/1/q108/solution.go

27 lines
538 B
Go

// Package q108 implements a solution for https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
package q108
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]}
}
l, r := nums[:len(nums)/2], nums[len(nums)/2+1:]
m := nums[len(nums)/2]
return &TreeNode{
Val: m,
Left: sortedArrayToBST(l),
Right: sortedArrayToBST(r),
}
}
var _ = sortedArrayToBST