您的位置:首页 > 其它

LeetCode-Convert Sorted List to Binary Search Tree

2014-08-19 19:35 363 查看
作者:disappearedgod
文章出处:/article/3730275.html
时间:2014-8-19

题目


Convert Sorted List to Binary Search Tree

Total Accepted: 16590 Total
Submissions: 61016My Submissions

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

解法
/**
* Definition for singly-linked list.
* public class ListNode {
*     int val;
*     ListNode next;
*     ListNode(int x) { val = x; next = null; }
* }
*/
/**
* Definition for binary tree
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public TreeNode sortedListToBST(ListNode head) {
if(head == null)
return null;
int length = 0;
ListNode p = head;
for(; p != null; p = p.next){
length++;
}
return sortedListToBST(head, 0, length-1);
}
public TreeNode sortedListToBST(ListNode head,int low, int high) {
if(low > high)
return null;
ListNode p = head;
int mid = low + (high - low) / 2;

for(int i = low; i < mid ; i++){
p = p.next;
}
TreeNode t = new TreeNode(p.val);
t.left = sortedListToBST(head, low, mid-1);
t.right = sortedListToBST(p.next, mid+1,high);
return t;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: