1.题目
- 定义一个函数,输入一个链表的头节点,
反转该链表
并输出反转后链表的头节点
。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
2. 思路
2.1 递归法
递归的两个条件:
- 终止条件是当前节点或者下一个节点为null;
- 在函数内部,改变节点的指向,也就是head的下一个节点指向head递归函数那句。
head.
next
.next
= head
这个条件可能理解起来有点抽象,那我们先来看看动图(动图来自@wang_ni_ma):
具体实现代码如下