自己救自己系列, 找工作刷題做點總結。明明還只是在校生,但我的頭髮就以爲自己是長在了程序猿頭上,自覺地脫落了。
鏈表那真是重要的不能再重要了,多刷多掌握。
詳細講的內容那真是太多了,參考這篇吧。http://c.biancheng.net/view/1570.html
1、鏈表的定義
鏈表是數據結構中 線性表 的一種,它由一個個節點組成,每個節點都是一個數據結構。 鏈表的結點通常是動態分配、使用和刪除的。
2、鏈表的優點
與數組相比:其存儲空間小
與矢量vector相比:其插入刪除速度快,時間複雜度O(1)
3、鏈表的結構
鏈表中的每個結點都包含 數據成員 和 指針。數據成員可有一個或者多個,指針只想下一節點。
4、鏈表的分類
線性鏈表可分爲單鏈表,循環鏈表,雙鏈表
5、鏈表的聲明
一般的單向表是這麼定義的:
struct ListNode
{
DATATYPE value; //定義數據成員
ListNode *next; //被聲明爲 ListNode 的指針
};
鏈表題目一般來說別的先不弄,先設置一個頭鏈表再說
ListNode* dummyhead = new ListNode(0);
dummyhead->next = pHead;
設置頭節點的好處在哪裏呢?
主要是爲了將單節點的情況與其他情況操作統一。
更詳細的優點見: https://www.cnblogs.com/youxin/p/3279391.html
不用的發在刷題時候會被很難受。比如這個 刪除鏈表的倒數第N個節點
這篇其實改了好久好幾次,因爲我所瞭解的並不多,暫時先放出來,以後繼續改進。