leetcode上单链表转BST上那道题我用JAVA写了,可是测试就是过不了,求大神看看我
的code。
我确实看不出问题在哪儿,不会是getlength那个Method写错了吧
public class Solution {
public TreeNode sortedListToBST(ListNode head) {
// Start typing your Java solution below
// DO NOT write main() function
int length = getListLength(head);
return sortedListToBST(head, 1, length);
}
public TreeNode sortedListToBST(ListNode head, int start, int end){
if(start>end)
return null;
int mid = start + (end-start)/2;
TreeNode leftChild = sortedListToBST(head, start, mid-1);
TreeNode parent = new TreeNode(head.val);
parent.left = leftChild;
head = head.next;
parent.right = sortedListToBST(head, mid+1, end);
return parent;
}
public int getListLength(ListNode head){
ListNode current = head;
int count = 0;
while(current!=null){
count++;
current = current.next;
}
return count;
}
}