Blind 75

Update Time: 23.02.18

LeetCode

MyCode

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        # initial
        prev = None
        curr = head
        nex  = None

        ''' logic
            until head pointer to the last
            (1) 移動 next 指向 (curr 的 下一個 Node)
            (2) 將 curr 往另外一個方向指
            (3) 移動 prev 至 curr 位置
            (4) 移動 curr 至 next 位置
        '''

        while curr != None:
            nex = curr.next 
            curr.next = prev
            prev = curr
            curr = nex
        return prev