zoukankan      html  css  js  c++  java
  • leetcode--Convert Sorted Array to Binary Search Tree

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

    /**
     * Definition for binary tree
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public TreeNode sortedArrayToBST(int[] num) {
    		return transferHelper(num, 0, num.length);
        }
    	
    	/**construct tree node with the help of indices.<br>
    	 * @param num --input array
    	 * @param i --left index which is included.
    	 * @param j --right index which is excluded
    	 * @return root node of the tree
    	 */
    	private TreeNode transferHelper(int[] num, int i, int j){
    		TreeNode root = null;
    		if(j > i){
    			if(j == i + 1)
    				root = new TreeNode(num[i]);
    			else{
    				int mid = i + (j - i) / 2;
    				root = new TreeNode(num[mid]);
    				root.left = transferHelper(num, i, mid);
    				root.right = transferHelper(num, mid + 1, j);
    			}
    		}
    		return root;
    	}
    }
    

      

  • 相关阅读:

    暴力求解/数学问题
    Leetcode207. Course Schedule
    Balanced Team
    由先序和中序求后序
    Median String
    树的同构
    uva 202
    整除光棍
    阅览室
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3772354.html
Copyright © 2011-2022 走看看