剑指Offer编程题-反转链表

题目:反转链表

题目描述:输入一个链表,反转链表后,输出新链表的表头。

解题思路

遍历链表,开始结点为head,定义一个point变量指向当前要处理的结点,定义一个temp变量保存当前结点,然后当前结点point向前移动point = point.nexttemp.next = head结点指向head成为头部,head = temp移动到头部。(结合代码)

实现

python

# -*- 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:
            return None
        pPoint = pHead.next
        pHead.next = None
        while pPoint:
            pTemp = pPoint
            pPoint = pPoint.next
            pTemp.next = pHead
            pHead = pTemp
        return pHead