题目:
讲解:
每次循环的情况写出来,假设初始链表是 0 -> 1 -> 2 -> 3 -> 4
// 0
-> 1 -> 2 -> 3 -> 4 oldHead指向0,
newHead指向0,toBeReversed指向1
// 1 -> 0 -> 2 -> 3 -> 4 oldHead指向0, newHead指向1,toBeReversed指向2
// 2 -> 1 -> 0 -> 3 -> 4 oldHead指向0,
newHead指向2,toBeReversed指向3
// 3 -> 2 -> 1 -> 0 -> 4
oldHead指向0, newHead指向3,toBeReversed指向4
// 4 -> 3 -> 2 ->
1 -> 0 oldHead指向0, newHead指向4,toBeReversed指向null
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
if pHead == None:
return None
node = pHead
pre = None
cur = pHead
while cur!=None:
tmp = cur.next
cur.next = pre
pre = cur
cur = tmp
return pre
# write code here