题目
输入一个链表,反转链表后,输出新链表的表头。
方法一:利用指针的方法
# -*- 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
else:
pre=None#定义两个指针,一个指针指向空
cur=pHead#另一个指针指向表头
while cur!=None:#当表头不为空试,执行以下操作
temp=cur.next#表头指向的下一个值的指针赋值给temp,此时表头指向下一个值的指针为空
cur.next=pre#将指向空的指针赋值给表头指向下一个值的指针,此时,表头指向空,而pre的这个指针为空
pre=cur#将指向表头的指针cur赋值给pre,此时pre指向表头,cur为空
cur=temp#将表头指向下一个值的指针赋值给cur,此时cur指向表头的下一个值
#通过这个的循环,便能实现链表的反转。
return pre