# 解法一:常规修改指针
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