# class ListNode:
# def __init__(self, x
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def ReverseList(self , head: ListNode) -> ListNode:
# write code here
#方法1:迭代
# if (not head or not head.next):
# return head
# else:
# head1 = head
# pre = None
# while head1:
# temp = head1.next
# head1.next = pre
# pre = head1
# head1 = temp
# return pre
#方法2:递归
#递归结束条件
if head is None or head.next is None:#前者针对空链表
return head
#反转下一个
newHead = self.ReverseList(head.next)#子问题的头节点
#逆转本级节点,咋逆转的?
#head.next可以认为是逆转之后的尾节点,使尾节点的next链接到当前节点的最后一个节点
head.next.next = head
#尾部设置空节点
head.next = None
#每一级返回反转后的子问题的头节点
return newHead
反转链表(Python)
于 2023-03-06 21:31:51 首次发布