Reverse Linked List

題目
思路

  1. 因為是 linked list,我們可以使用 curr 當指標,沿著 linked list 的頭往後走,一邊改變 curr.next 的指向,而過程中必須對前一個和下一個都有所掌握,因為 curr 必須指向前一個,然後它本身必須換到下一個
  2. 所以我們會有三個變數:previous, curr, next
  3. currhead 時,previous 會是 None,這兩個可以先設定好。目標是一直改變 curr 的指向,讓 curr 一直走到 linked list 盡頭,變成 None 為止,所以 while 條件就是 當有 curr 的時候就做

Python 3 solution:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
previous = None
curr = head
while curr:
next = curr.next
curr.next = previous
previous = curr
curr = next
return previous

評論

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×