[筆記] LeetCode 刷題記錄 (21,206,876) – 7

LeetCode 在需要接觸演算碼的工程師中,為相當知名的練習場所。當你有需要挑戰自己的腦筋、面試前的準備……等,都滿適合來這邊看一下你的演算法和資料結構的熟悉程度。這回要筆記的有 Merge Two Sorted Lists、Reverse Linked List、Middle of the Linked List。
leetCode Logo


題目

21. Merge Two Sorted Lists

[連結]:https://leetcode.com/problems/merge-two-sorted-lists/

206. Reverse Linked List

[連結]:https://leetcode.com/problems/reverse-linked-list/
A. 如果沒有 head ,回傳 null
B. 如果 head.next 為 null,回傳 head
只要將鏈結的指向順序全部反轉就好,所以……
1. 從左到右開始,把 head 值用 pre 保存, head.next 用 cur 保存, 並新增一個 temp = null
2. 將 pre.next 改為 null
3. 當 cur 不為 null ,表示還沒走完全程,所以……
I. 將 cur 的現在狀態給 temp 保存
II. 將 cur.next 變成 cur,這樣一來就把原先的 cur 和 cur.next 的連結切斷
III. 將 temp.next 接到 pre 上
IV. 由於 temp 保留了最一開始 cur.val 的狀態,所以會 temp 成為新的 pre
4. 最後印出 pre ,反轉完成

876. Middle of the Linked List

[連結]:https://leetcode.com/problems/middle-of-the-linked-list/
1. 用 while 迴圈搭配 counter 記下全部的 Link 長度
2. 接著取中點,若奇數則向下取整數、偶數則向上取整數
3. 按照剩餘的 counter 值移動 head,每移動一次就 – 1


歷次 LeetCode 刷題記錄

按讚加入粉絲團

延伸閱讀