Ich versuche, diese Funktion zu schreiben, die eine doublyLinkedList aufnimmt und einen ausgeglichenen binären Suchbaum erzeugt. Der TreeNode.left entspricht dem vorherigen Zeiger und TreeNode.right ist wie der nächste Zeiger. Ich nehme Inspiration aus dem Programm hier aber das funktioniert nicht:Balancierter binärer Suchbaum aus doppelt verknüpfter Liste
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;
}
Verwenden Sie http://cs.stackexchange.com/, es ist spezifischer für diese Art von Fragen. –