0
任何人都可以幫我指出並解釋我在這個循環鏈表中的邏輯錯誤嗎?提前致謝。C++循環鏈表錯誤
template <class xtype>
void clist<xtype>:: copylist (const clist<xtype> & other)
{
node<xtype> *temp;
node<xtype> *p;
if (head !=NULL)
makeEmpty();
if (other.head == NULL)
head = NULL;
else
{
p = other.head;
head = new node<xtype>;
head->info = p->info;
temp = head;
p = p->next;
while(p != head)
{
temp->next = new node<xtype>;
temp = temp->next;
temp->info = p->info;
p = p->next;
}
temp->next = head;
}
}
但爲什麼使用other.head而不是頭? – user3504938
@ user3504938因爲'p'正在迭代'other'列表。 'head'本身就在你正在創建的列表中,而且不應該通過遍歷'other'來遇到。 – paddy