题目

给你单链表的头节点 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

Ethan
140 声望11 粉丝

水平较低,只是记录,谨慎参阅


引用和评论

0 条评论