Я пытаюсь написать эту функцию, которая принимает в doublelyLinkedList и создает сбалансированное двоичное дерево поиска на месте. TreeNode.left эквивалентен предыдущему указателю, а TreeNode.right - как следующий указатель. Я беру вдохновение из программы здесь, но это не работает:Сбалансированное двоичное дерево поиска из дважды связанного списка
http://www.geeksforgeeks.org/in-place-conversion-of-sorted-dll-to-balanced-bst/
private static TreeNode constructBST2(TreeNode head, int m, int n) {
TreeNode temp = null;
if (m < n) {
int mid = m + (n - m)/ 2;
TreeNode left = constructBST2(head, m, mid);
temp = head;
temp.left = left;
head = head.right;
temp.right = constructBST2(head, mid + 1, n);
}
return temp;
}
Используйте http://cs.stackexchange.com/, это более специфично для этих типов вопросов. –