输入一个链表,反转链表后,输出新链表的表头。
# -*- 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 is None or pHead.next is None: # 考虑链表为空或只有一个结点
return pHead
# 对pHead以后的链表进行反转,new_head表示反转之后的头结点
new_head = self.ReverseList(pHead.next)
pHead.next.next = pHead # 将头结点的下一节点的next指向头结点pHead,表示反转
pHead.next = None # 将头结点的next设置为None(没使用temp保存结点,只能写下面)
return new_head # 返回头结点