iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
佛心分享-刷題不只是刷題

刷經典 LeetCode 題目系列 第 23

經典LeetCode 206. Reverse Linked List

  • 分享至 

  • xImage
  •  

題目 206:「反轉 Linked List」 是一道常見的 LeetCode 基礎題目,目標是將一個單向 Linked List 的節點順序反轉。

題目:

給定一個 Linked List,反轉該 Linked List,並回傳新的頭節點。例如:

範例:

輸入:1 -> 2 -> 3 -> 4 -> 5 -> NULL
輸出:5 -> 4 -> 3 -> 2 -> 1 -> NULL

解題思路

這題有兩種常見的解法:遞迴和迭代。

這邊使用迭代法來解,

實作:

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *curr = head;
        ListNode *prev = nullptr;
        while (curr != nullptr) {
            ListNode* next = curr->next;
            curr->next = prev;
            prev = curr;
            curr = next;
        }
        // 此時 curr 是 nullptr
        return prev;
    }
};

參考:
#206. Reverse Linked List


上一篇
經典LeetCode 211. Add and Search Word - Data Structure Design
下一篇
經典LeetCode 141. Linked List Cycle
系列文
刷經典 LeetCode 題目70
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言