📑 题目:108. 将有序数组转换为二叉搜索树

🚀 本题 LeetCode 传送门

题目大意

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

解题思路

  • 把一个有序数组转换成高度平衡的二叉搜索数,按照定义即可

代码

  1. package leetcode
  2. /**
  3. * Definition for a binary tree node.
  4. * type TreeNode struct {
  5. * Val int
  6. * Left *TreeNode
  7. * Right *TreeNode
  8. * }
  9. */
  10. func sortedArrayToBST(nums []int) *TreeNode {
  11. if len(nums) == 0 {
  12. return nil
  13. }
  14. return &TreeNode{Val: nums[len(nums)/2], Left: sortedArrayToBST(nums[:len(nums)/2]), Right: sortedArrayToBST(nums[len(nums)/2+1:])}
  15. }