【发布时间】:2011-04-30 22:18:48
【问题描述】:
哦,亲爱的;我好像误会了。
我想将一个单链表拆分 10,000 次,但显然(在你们帮助我之前我不知道这一点)它会导致堆栈溢出。
我对此真的很陌生,所以有什么办法我仍然可以做到这一点并且不会导致堆栈溢出?使用参考还是什么?
方法如下:
Node* Node::Split()
{
if(next == NULL)
{
return this;
}
Node *newNode = this->next;
if(this->next != NULL)
{
this->next = newNode->next;
}
if(newNode->next != NULL)
{
newNode->next = newNode->next->Split();
}
return newNode;
}
【问题讨论】:
-
栈溢出就是深度递归。迭代地而不是递归地进行拆分,你会没事的。
-
就像在该行周围循环一样?
-
@Tomalak_Geret'kal 抱歉忘记加标签
-
@Tazzy:你需要做更多的改变,但是,是的,你的解决方案将涉及一个循环。
标签: c++ split mergesort singly-linked-list