博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lintcode: 把排序数组转换为高度最小的二叉搜索树
阅读量:4951 次
发布时间:2019-06-11

本文共 1801 字,大约阅读时间需要 6 分钟。

题目:

给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。

样例

给出数组 [1,2,3,4,5,6,7], 返回

4   /   \  2     6 / \    / \1   3  5   7
挑战

可能有多个答案,返回任意一个即可

解题:

可以看出,这里的数组是所求二叉树,中序遍历的结果,把这个结果还原成树即可。曾经天勤数据结果好像有这一题。

Java程序:

/** * Definition of TreeNode: * public class TreeNode { *     public int val; *     public TreeNode left, right; *     public TreeNode(int val) { *         this.val = val; *         this.left = this.right = null; *     } * } */ public class Solution {    /**     * @param nums: an integer array     * @return: a tree node     */    public TreeNode sortedArrayToBST(int[] nums) {          // write your code here        if(nums==null)            return null;        return buildTree(nums,0,nums.length - 1);    }    public TreeNode buildTree(int[] nums,int start,int end){        if(start>end)            return null;        int median = (start+end)/2;        TreeNode node = new TreeNode(nums[median]);        node.left = buildTree(nums,start,median-1);        node.right = buildTree(nums,median+1,end);            return node;    }}
View Code

总耗时: 2855 ms

Python程序:

"""Definition of TreeNode:class TreeNode:    def __init__(self, val):        self.val = val        self.left, self.right = None, None"""class Solution:    """    @param nums: a list of integer    @return: a tree node    """    def sortedArrayToBST(self, nums):        # write your code here        if nums==None:            return None        return self.buildTree(nums,0,len(nums)-1)        def buildTree(self,nums,start,end):        if start>end:            return None        median = (start+end)//2        node = TreeNode(nums[median])        node.left = self.buildTree(nums,start,median-1)        node.right = self.buildTree(nums,median+1,end)        return node
View Code

总耗时: 869 ms

转载于:https://www.cnblogs.com/theskulls/p/4875784.html

你可能感兴趣的文章
ThinkPHP框架知识的注意点
查看>>
平滑滤波(Smooth); java语言实现
查看>>
注意力的培养是学校教学的真正目的
查看>>
学习总结:机器学习(三)
查看>>
图论 邻接表实现 动态数组实现
查看>>
IP通信基础 第八周 第九周总结
查看>>
kali,parrot最新更新debain源
查看>>
平衡树学习笔记(2)-------Treap
查看>>
在 Xcode 6 中使用矢量图( iPhone 6 置配 UI)
查看>>
./mosquitto_internal.h:51:12: fatal error: 'ares.h' file not found
查看>>
HDU 1789 Doing Homework again(非常经典的贪心)
查看>>
本机,同机房,同城,异地,不同城,腾讯云ping延时值
查看>>
jQuery小结5
查看>>
i=i+1与i+=1的区别及效率
查看>>
指令——mkdir
查看>>
Server.MapPath
查看>>
WPF日期控件
查看>>
基本的SqlPlus命令
查看>>
oracle 日期比较出现ORA-01861: 文字与格式字符串不匹配问题
查看>>
hibernate_sequence.nextval 序列不存在
查看>>