帶頭節點:head-> p1->p2->p3 ->p1->p2->p3-> p1.....
不帶頭節點: p1->p2->p3 ->p1->p2->p3-> p1.....
卻別還不明顯嗎?帶頭節點可以方便,快速的定位連結串列第1個節點
head->next = p2;
p3->next = head->next; ok?
free(p1);
思路很清晰,連結串列開始的第1個節點現在就是head->next 即 p2
否則沒有頭節點:
p3->next = p1->next;
會不會有一種連結串列第1個節點到底是哪個的感覺?
當然單向迴圈這個不明顯,如果你寫個雙向迴圈,就會很方便,麻煩,我就寫單向吧``
就是方便,清晰,明瞭,也不是一定要用,要看情況,看需要對連結串列做什麼操作,來決定要不要帶頭節點。你不寫幾個連結串列沒法體會的。
祝你好運!~
帶頭節點:head-> p1->p2->p3 ->p1->p2->p3-> p1.....
不帶頭節點: p1->p2->p3 ->p1->p2->p3-> p1.....
卻別還不明顯嗎?帶頭節點可以方便,快速的定位連結串列第1個節點
head->next = p2;
p3->next = head->next; ok?
free(p1);
思路很清晰,連結串列開始的第1個節點現在就是head->next 即 p2
否則沒有頭節點:
p3->next = p1->next;
free(p1);
會不會有一種連結串列第1個節點到底是哪個的感覺?
當然單向迴圈這個不明顯,如果你寫個雙向迴圈,就會很方便,麻煩,我就寫單向吧``
就是方便,清晰,明瞭,也不是一定要用,要看情況,看需要對連結串列做什麼操作,來決定要不要帶頭節點。你不寫幾個連結串列沒法體會的。
祝你好運!~