2020年4月19日 星期日

[LeetCode] 206. Reverse Linked List* 解題思路 (Easy)



這題需要反轉 linked list。




LeetCode 題目連結

 

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

 

題目



Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
Follow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?

Accept 作法

這題主要注意的地方是須給兩個位置分別是 cur 跟 prev,時間複雜度 O(n),空間複雜度O(1)。


Runtime: 0 ms
Memory: 39.4 MB

Java 程式碼

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode cur = head;
        ListNode prev = null;
        while(cur !=null){
           ListNode next = cur.next;
           cur.next = prev;
           prev = cur;
           cur = next;
        }

        return prev;
    }
}



 

更多 LeetCode 相關資源

 

複習程式面試書籍


除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備
需要的話可以看看,寫得很仔細。





書名:提升程式設計師的面試力:189道面試題目與解答




相關 LeetCode文章一律會放在 程式解題 標籤分類,歡迎持續追蹤。


沒有留言:

張貼留言