题目描述
输入一个链表,反转链表后,输出新链表的表头.
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回ListNode def ReverseList(self, pHead): #反转链表,我们的思路是将前一个节点与后一个节点断开,然后让前一个节点指向后一个节点, #这个过程就需要节点引用(可以理解为指针)来确定记录当前操作节点的前一个节点和后一个节点 #ListNode pre=null;定义pre节点引用指向当前操作节点的前一个节点,最开始头结点的前一个节点肯定是null。 #ListNode next=null; 定义next节点引用指向当前操作节点的后一个节点,我们开始也让他指向null. #temp=head.next;//让temp引用指向head下一个节点, #head.next=newHead;//newHead始终指向当前head的前一个节点,这样可以反转节点了。 #newHead=head;这个时候,newHead就由当前操作节点的上一个节点变成了当前操作节点了, #可以进行下一个当前操作节点的反转操作了 #head=temp; 这个就是下一个操作节点。 # write code here 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