7 递归
206. 反转链表
给你单链表的头节点head,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
算法设计
可以充分利用原有的存储空间,通过修改指针实现单链表的就地逆置。相当于将所有的箭头反向,头指针指向原链表的尾部。如图所示。
反转链表可以采用迭代法和递归算法两种方法实现,原理是一样的,只是实现方式不同而已。
1. 迭代法
以上面单链表为例,展示单链表就地逆置过程。
(1)首先处理第一个节点,反转后该节点是单链表的尾节点,其next指针指向空。