206. 反转链表
Q:
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
A:
迭代就不说了,保存当前节点的前继节点循环改变指针指向就行。
我自己先写了个递归的,但看了题解的递归,一比就比下去了。。
我写的递归:
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
def func(node):
if not node:
return
nonlocal head
node_nex=node.next
node.next=head
head=node
func(node_nex)
if not head:
return
x=head.next
head.next=None
func(x)
return head
看题解写的递归:
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if not head or not head.next:
return head
def func(node):
if not node.next:
return node
p=func(node.next)
node.next.next=node
node.next=None
return p
return func(head)
进击的小🐴农