| 1234567891011121314151617181920212223242526272829303132333435 | 
							- package main
 
- // type TreeNode struct {
 
- // 	Val   int
 
- // 	Left  *TreeNode
 
- // 	Right *TreeNode
 
- // }
 
- /**
 
-  * Definition for a binary tree node.
 
-  * type TreeNode struct {
 
-  *     Val int
 
-  *     Left *TreeNode
 
-  *     Right *TreeNode
 
-  * }
 
-  */
 
- func sortedArrayToBST(nums []int) *TreeNode {
 
- 	if len(nums) == 0 {
 
- 		return nil
 
- 	}
 
- 	mid := len(nums) / 2
 
- 	root := TreeNode{nums[mid], nil, nil}
 
- 	// only one element in nums, return TreeNode{ele, nil, nil}
 
- 	if mid == 0 {
 
- 		return &root
 
- 	}
 
- 	root.Left = sortedArrayToBST(nums[:mid])
 
- 	root.Right = sortedArrayToBST(nums[mid+1:])
 
- 	return &root
 
- }
 
- // func main() {
 
- // 	t1 := sortedArrayToBST([]int{-10, -3, 0, 5, 9})
 
- // 	printTree(t1)
 
- // }
 
 
  |