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 }
  • 相关阅读:
    个人总结11
    进度条4,5
    对vivo自带输入法的评价
    个人总结10
    hdu5589Tree
    HDU5213 Lucky
    2018icpcShenYangE
    bzoj3683: Falsita
    cf396C. On Changing Tree
    cf600E. Lomsat gelral
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4084313.html
Copyright © 2011-2022 走看看