'''
解题思路:
while循环中引入两个中间变量pre,next存储当前节点的前一个节点和下一个节点初始值为None
'''
# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回ListNode
    def ReverseList(self, pHead):
        # write code here
        if pHead == None or pHead.next ==None:
            return pHead

        pre = None              # 前一个节点(None初始化)
        next = None             # 下一个节点(None初始化)
        while pHead != None:
            next = pHead.next   # 先保存下一个节点
            pHead.next = pre    # 下一个节点指向前一个节点(反转链表)            
            pre = pHead         # 前一个节点更新(用于下一个循环使用)
            pHead = next        # 用下一个节点替代当前节点(触发下一步循环)
        return pre