Update Time: 23.02.18
# 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