题解 | #将升序数组转化为平衡二叉搜索树#

将升序数组转化为平衡二叉搜索树

http://www.nowcoder.com/practice/7e5b00f94b254da599a9472fe5ab283d

package main
import . "nc_tools"
/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
  * 
  * @param num int整型一维数组 
  * @return TreeNode类
*/
func sortedArrayToBST( num []int ) *TreeNode {
    // write code here
    // 选择中间的元素当做我们的头结点, 然后递归的将子数组全部变成BST
    // 递归 + 二分
    if len(num) == 0 {
        return nil
    }
    if len(num) == 1 {
        return &TreeNode{num[0], nil, nil}
    }
    left, right := 0, len(num)-1
    mid := right/2 + left/2
    root := &TreeNode{num[mid] ,nil, nil}
    root.Left = sortedArrayToBST(num[:mid])
    root.Right = sortedArrayToBST(num[mid+1:])
    return root
}
全部评论

相关推荐

点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务