如果我们使用双指针,而不是单一的指针此代码工作正常..为什么这个程序使用单一指针不工作
Node *pairwiseSwap(Node *start)
{
Node *prev=start,*current=start->next;
if(start==NULL || start->next==NULL)
return 0;
while(true)
{
Node *next=current->next;
current->next=prev;
if(next==NULL || next->next==NULL)
{
prev->next=next;
break;
}
prev->next=next->next;**//next to next**
prev=next;
current=prev->next;**//appending nodes to the previous one**
}
return start;
}
你是什么意思(不)工作? –
您能详细解答您遇到的问题吗?它是否构建?如果不是那么你会得到什么错误?它运行时崩溃吗?那么调试器告诉你它崩溃了?意外的结果?你期望的结果是什么,你得到了什么? –
在* Node * prev = start,* current = start-> next后面检查'if(start == NULL || start-> next == NULL)''不起作用。损坏已经完成,NULL可能被解除引用。 – EOF