方法比較簡單,使用三個指針即可
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if head == None:
return
result = [None]
self.reverseLink(head, result).next = None
return result[0]
def reverseLink(self, head, result):
# 遞歸寫法
if head.next != None:
self.reverseLink(head.next, result).next = head
else:
result[0] = head
return head
#迭代寫法
# pre = None
# cur = head
# while cur:
# temp = cur.next
# cur.next = pre
# pre = cur
# cur = temp
# return pre
返回要返回pre,因爲最後pre就是cur。
使用遞歸時要注意,每個函數不能在分支裏寫return,要都有return才行。