题目描述[原题链接][https://www.acwing.com/problem/content/description/33/]
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
样例
1 | 输入:1->2->3->4->5->NULL |
算法描述
分析题意可知,本题的难点在于当你将节点的指针反向后,后面的节点可能会找不到了,所以再反转的过程中需要将后面的节点先保存起来,每次操作涉及到的节点有三个,所以需要维护一个三个节点的窗口,直到遍历到链表尾部,如果第三个节点的值为空,将第二个节点的next
指向第一个节点
C++代码
1 | /** |
Java代码
1 | /** |