169 字
1 分钟
LeetCode-108.将有序数组转换为二叉搜索树
二叉树
给你一个整数数组
nums,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。
示例 1:
![]()
输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:
![]()
输入:nums = [1,3]输出:[3,1]解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。
递归的解法
/** * 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{Val: nums[mid]}
root.Left = sortedArrayToBST(nums[:mid]) root.Right = sortedArrayToBST(nums[mid+1:])
return root} LeetCode-108.将有序数组转换为二叉搜索树
https://sheep44044.github.io/posts/算法/二叉树/leetcode-108将有序数组转换为二叉搜索树/