[筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 4

一腳踏入軟體工程師寫 Code 的世界,不免俗地會碰上 Leetcode 的測驗,來測試你的溝通力、系統性地解決問題的能力和如何化抽象為具體。第四週的活動要進入較為難想像的 Linked List 為主。
[筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 3


課程相關資訊

[連結]:https://www.accupass.com/event/2010251353233453323900

課程對應章節:Week4 U29~U31

請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。


內容

Linked List

1. Linked List 屬於較為高階的資料結構,所以多半是需要親自實作
2. 由 Node 組成,並具有指向性連到下一個 Node
3. 實務上,可以分為 Simple Linked List ( 單向 )、Doubly Linked List ( 雙向 )、Circular Linked List ( 環型 )
4. 和 Array 相比,它不需要連續的記憶體空間,資料插入和刪除很方便,但要查找就會辛苦一些
5. Tree 就如同非線性的 Linked List,延展性比起單線的 Linked List 佳

Linked List 邏輯

1. 反轉:在反轉前,要先記下原先的連結狀態,再將連結斷開。通常會搭配 While、遞迴等方法來實作。
2. 若使用遞迴方式解,會利用函式 Stack 的特性,快速將目標元素導引到倒數第二個,並將 cur.next.next 指向自己,將 cur.next 切斷。


LeetCode 題目

143. Reorder List

連結:https://leetcode.com/problems/reorder-list/

148. Sort List

連結:https://leetcode.com/problems/sort-list/

206. Reverse Linked List

連結:https://leetcode.com/problems/reverse-linked-list/


相關文章

  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 1
  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 2
  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 3
  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 5
  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 5-2
  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 6
  • [筆記] AlphaCamp 不只是刷題的 Leetcode 訓練營 – 7
  • 按讚加入粉絲團

    延伸閱讀