# 解法一:常规修改指针 class Solution: def ReverseList(self, pHead): # write code here if not pHead: return None pre=None while pHead: tmp=pHead.next pHead.next=pre pre=pHead pHead=tmp return pre 解法二:递归形式 class Solution: def ReverseList(self,pHead): # pHead=1->2->3->4 # 定义终止条件: 空值或者只有一个节点的时候,直接返回pHead if not pHead or not pHead.next: return pHead # 递归条件: newlist=self.ReverseList(pHead.next) # pHead.next=2->3->4 # 第一步,就定义了reverseList函数的功能可以把一个单链表反转 # 对2->3->4反转之后的结果应该是这样:4->3->2 ,1->2 这是得到newlist # 最后修改一下1的指向就可以了,让2->1 p2=pHead.next # 2 p2.next=pHead # 2->1 pHead.next=None # 1->None return newlist