classListNode:def__init__(self):
self.val =None
self.next=Nonedefcreatlist_tail(lst):
L = ListNode()
first_node = L
for item in lst:
p = ListNode()
p.val = item
L.next= p
L = p
return first_node
defshow(node:ListNode):print(node.val,end=' ')if node.nextisnotNone:
node = show(node.next)classSolution:defReverseList(self, head: ListNode)-> ListNode:# write code hereif head isNoneor head.nextisNone:return head
prehead = Solution.ReverseList(self, head.next)
head.next.next= head
head.next=Nonereturn prehead
if __name__ =='__main__':
lst =[1,2,3]
linklist = creatlist_tail(lst)
show(linklist)print()
solution = Solution()
show(solution.ReverseList(linklist))
None123321None
迭代
classListNode:def__init__(self):
self.val =None
self.next=Nonedefcreatlist_tail(lst):
L = ListNode()
first_node = L
for item in lst:
p = ListNode()
p.val = item
L.next= p
L = p
return first_node
defshow(node:ListNode):print(node.val,end=' ')if node.nextisnotNone:
node = show(node.next)classSolution:defReverseList(self, head: ListNode)-> ListNode:# write code here
res =Nonewhile head:
nextnode = head.next
head.next= res
res = head
head = nextnode
return res
if __name__ =='__main__':
lst =[1,2,3]
linklist = creatlist_tail(lst)
show(linklist)print()
solution = Solution()
show(solution.ReverseList(linklist))
题目递归class ListNode: def __init__(self): self.val = None self.next = Nonedef creatlist_tail(lst): L = ListNode() first_node = L for item in lst: p = ListNode() p.val = item L.next = p L =