void display(link head)
{
link p;
p=head;
if(p==NULL)
printf("\nlist is empty");
else do
{
printf("%d",p->data);
p=p->next;
}while(p!=NULL);
}
書上說思考為什麼要把head設定成p而不是直接用我沒看出來為什麼 為什麼啊?
link是鍊錶的指標
head四個字元比p長。
head意義特指頭部節點,而遍歷鍊錶時用的指標會指向鍊錶的每一個節點,用head那意義不合適了。
@任衛 已經說了一個原因,因為我們並不是要用"head"來遍歷整個鍊錶。
除了這個原因,我還能想到一個原因,也就是我們需要保留一份"head"。在這個函數中,我們並不需要再次使用"head",但對於其他一些複雜點的函數,我們可能在遍歷完鍊錶後還會想用到"head"。如果我們不用"p"而直接用"head"來遍歷鍊錶的話,我們就沒辦法再訪問頭結點了。因此,我們需要保存一份"head"也就是用
p = head
,而不是直接用「head」來遍歷。