题目
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
题解
考察链表结构的理解,递归方法的实现
# 1层:输入节点1,传入下一层节点2
# 2层:输入节点2,传入下一层节点3
# 3层:输入节点3,传入下一层节点4
# 4层:输入节点4,传入下一层节点5
# 5层:输入节点5,无法继续向下,返回节点5
# 4层:拿到节点5,将4->5改成5->4,返回节点5
# 3层:拿到节点5,将3->4改成4->3,返回节点5
# 2层:拿到节点5,将2->3改成3->2,返回节点5
# 1层:拿到节点5,将1->2改成2->1,返回节点5
# 返回节点5,5->4->3->2->1
def reverseList(head):
if not head or not head.next:
return head
pot = reverseList(head.next)
head.next.next = head
head.next = None
return pot
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。