• 为了避免链表断裂,这里需要三个指针,pnode指向某一节点,pre指向之前的一个节点,next指向后一个节点,反转的时候先记录next=pnode.next,然后让pnode指向pre,然后更新pnode和pre。
  • 需要注意的是什么时候反转结束以及只有一个节点或空链表的时候

# -*- 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
        Reversedhead = None
        pNode = pHead
        pre = None
        while pNode:
            nextnode = pNode.next
            if not nextnode:
                Reversedhead = pNode
            pNode.next = pre
            pre = pNode
            pNode = nextnode
        return Reversedhead