題解思路
循環的方法需要注意prev應該是None開始,然后到結束的時候prev是tail,遞歸的思路很難繞過彎來,主要在于很難想清楚為什么可以返回尾節點,需要多做遞歸題,以及遞歸過程中,可以不使用尾節點來找當前遞歸位置,用head結點即可,多用邊界情況推理。
AC代碼
# 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]:# if not head or head.next is None:# return head# newhead = self.reverseList(head.next)# head.next.next = head# head.next = None# return newheadprev = Nonecurr = headwhile curr:temp = curr.nextcurr.next = prevprev = currcurr = tempreturn prev