一、题目描述
输入一个链表,反转链表后,输出新链表的表头。
二、解题思路
把listNode中的next改为null可以,但是想把listnode=null就麻烦了。因为你自己定义的listnode=head的话,listnode=null时head并不是空。这个也是清理对象时的经验,只能把最原始的对象赋值为空,要不然原始对象指针会一直占用这个对象。
用temp保存pHead的下一个节点。用newHead保存新的节点的开头。然后把pHead.next只想newHead,再移动一下 三个指针即可。
三、实现代码
# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def ReverseList(self, pHead):
if not pHead or not pHead.next:
return pHead
newHead = None
while pHead:
temp = pHead.next
pHead.next = newHead
newHead = pHead
pHead = temp
return newHead