反转一个单链表
题目源于领扣:https://leetcode-cn.com/problems/reverse-linked-list/description/
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题
题目分析
- 因为一个单个链表结点有前驱和后继,所以我们不能像顺序表那样直接交换元素。
- 我们需要三个指针
prev,cur,_next
来完整的处理节点间的关系。
过程如图:
如图解:
注意
1.prev
的功能是将头结点的next
变为空,并且标记被操作结点的新next
,cur
始终是被操作结点,_next
始终标记结点原来