我想从一个排序的链表中创建一个 BST。我已经解决了递归问题,但想知道如何在不改变问题复杂性的情况下编写迭代解决方案。
[编辑]
注意:我不想实现自己的堆栈。
[编辑2]
递归调用自身的函数是 f。伪代码如下。用头指针调用 f 从main
node * f(int start_index, int end_index, node *ptr) {
if ( start>end) return NULL
middle_index = start_index + (end_index-start_index)/2
node *l_child = f(start_index, middle_index-1, ptr)
initialize parent with ptr's value
parent->left = l_child
ptr = ptr->next
parent->right = f(middle_index+1, end, ptr)
return parent
}