zoukankan      html  css  js  c++  java
  • Leetcode-Convert Sorted Array to BST

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

    Solution:

     1 /**
     2  * Definition for binary tree
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     public TreeNode sortedArrayToBST(int[] num) {
    12         if (num.length==0)
    13             return null;
    14         
    15         int end = num.length-1;
    16         TreeNode root = sortedArrayToBSTRecur(num,0,end);
    17         return root;
    18     }
    19     
    20     public TreeNode sortedArrayToBSTRecur(int[] num, int head, int end){
    21         if (head==end){
    22             TreeNode root = new TreeNode(num[head]);
    23             return root;
    24         }
    25         
    26         if (head+1==end){
    27             TreeNode root = new TreeNode(num[end]);
    28             TreeNode child = new TreeNode(num[head]);
    29             root.left = child;
    30             return root;
    31         }
    32         
    33         //Calculate the median index.
    34         int len = end-head;
    35         int mid = head + len/2 + len%2;
    36         TreeNode root = new TreeNode(num[mid]);
    37         TreeNode leftChild = sortedArrayToBSTRecur(num,head,mid-1);
    38         TreeNode rightChild = sortedArrayToBSTRecur(num,mid+1,end);
    39         root.left = leftChild;
    40         root.right = rightChild;
    41         return root;
    42     }
    43 }
  • 相关阅读:
    browser浏览器类型判断
    泛型函数Func<>
    前台JS端排除重复录入数据方法(取值对比)
    判断字符串是否为空字符串
    Linq语法及用法
    new Array( ) 使用
    性能测试
    [排序N大件之]快速排序
    [排序N大件之]归并排序
    [排序N大件之]谢尔排序
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4084313.html
Copyright © 2011-2022 走看看