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

    Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

    public class Solution {
        /** Convert the linked list to arrayList first, and then convert the ArrayList to a BST
    	 * @param head  --head node of the linked list
    	 * @return TreeNode --the root node of a height balanced BST tree
    	 * @author Averill Zheng
    	 * @version 2014-06-05
    	 * @since JDK 1.7 
    	 */
    	public TreeNode sortedListToBST(ListNode head) {
    		TreeNode root = null;
    		ArrayList<Integer> number = new ArrayList<Integer>();
    		int length = 0;
    		while(head != null){
    			number.add(head.val);
    			head = head.next;
    			++length;
    		}
    		root = convertHelper(number, 0, length);
    		return root;
        }
    	private TreeNode convertHelper(ArrayList<Integer> number, int i, int j){
    		TreeNode root = null;
    		if(j > i){
    			if(j == i + 1)
    				root = new TreeNode(number.get(i));
    			else{
    				int mid = i + (j - i) / 2;
    				root = new TreeNode(number.get(mid));
    				root.left = convertHelper(number,i, mid);
    				root.right = convertHelper(number, mid + 1, j);
    			}
    		}
    		return root;    
        }
    }
    

      

  • 相关阅读:
    L1-009. N个数求和
    L1-008. 求整数段和
    L1-007. 念数字
    L1-006. 连续因子
    L1-005. 考试座位号
    L1-003. 个位数统计
    mtk preloader学习笔记
    android kernel启动学习笔记
    android MTK平台编译UBOOT学习笔记
    dota2输入法无候选框?
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3773662.html
Copyright © 2011-2022 走看看