177.Convert Sorted Array to Binary Search Tree With Minimal Height-把排序数组转换为高度最小的二叉搜索树(容易题)

来源:互联网 发布:苹果电脑直播音效软件 编辑:程序博客网 时间:2024/06/14 07:49

把排序数组转换为高度最小的二叉搜索树

  1. 题目

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

  2. 样例

    给出数组 [1,2,3,4,5,6,7], 返回
    这里写图片描述

  3. 挑战

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

  4. 题解

二分+递归

/** * 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 A: an integer array     * @return: a tree node     */    public TreeNode sortedArrayToBST(int[] A) {          return convert(null,A,0,A.length-1);    }      public TreeNode convert(TreeNode node,int[] A,int start,int end)    {        if (start > end)        {            return null;        }        int mid = (end + start) / 2;        node = new TreeNode(A[mid]);          node.left = convert(node.left, A, start, mid - 1);          node.right = convert(node.right, A, mid + 1, end);          return node;      }}

Last Update 2016.9.9

0 0