極客時間課程《數據結構與算法之美》筆記03 - 鏈表

鏈表

有些語言有 「指針」 的概念,好比 C 語言;有些語言沒有指針,取而代之的是 「引用」,好比 Java、Python。無論是 「指針」 仍是 「引用」,實際上,它們的意思都是同樣的,都是存儲所指對象的內存地址。指針

將某個變量賦值給指針,實際上就是將這個變量的地址賦值給指針,或者反過來講,指針中存儲了這個變量的內存地址,指向了這個變量,經過指針就能找到這個變量。對象

哨兵技巧

針對鏈表的插入、刪除操做,須要對插入第一個結點和刪除最後一個結點的狀況進行特殊處理內存

引入哨兵結點,在任什麼時候候,無論鏈表是否是空,head 指針都會一直指向這個哨兵結點。咱們也把這種有哨兵結點的鏈表叫帶頭鏈表,沒有哨兵節點的就叫做不帶頭鏈表。變量

哨兵節點不存儲數據,能夠統一代碼實現邏輯。技巧

邊界條件

  • 若是鏈表爲空時,代碼是否能正常工做?
  • 若是鏈表只包含一個結點時,代碼是否能正常工做?
  • 若是鏈表只包含兩個結點時,代碼是否能正常工做?
  • 代碼邏輯在處理頭結點和尾結點的時候,是否能正常工做?
相關文章
相關標籤/搜索