题目描述:
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
1
2 >输入: 1->2->3->4->5->NULL
>输出: 5->4->3->2->1->NULL
限制:
- 0 <= 节点个数 <= 5000
思路

- 利用双指针来反转链表
- 定义两个指针
prev和curr,初始时prev指向 null,curr指向链表头节点。然后遍历链表,每次将curr的下一个节点指向prev,然后将prev和curr分别向后移动一个节点,直到curr为 null。 - 其中,
head是链表头节点。在 while 循环中,先用next保存curr的下一个节点,然后将curr的下一个节点指向prev,再将prev和curr向后移动一个节点。最后返回prev,即为反转后的链表头节点。
代码
1 | /** |