如果我們使用雙指針,而不是單一的指針此代碼工作正常..爲什麼這個程序使用單一指針不工作
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