我正在尝试编写这个函数,该函数接受一个 doubleLinkedList 并在适当的位置构造一个平衡的二叉搜索树。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;
}