剑指offer------反转链表

来源:互联网 发布:centos7 nginx 访问 编辑:程序博客网 时间:2024/06/16 16:59

1、题目描述:

定义一个函数,输入一个链表的头结点,反转该链表(即一个节点的前一个节点变为这个节点的下一个节点)并输出反转后链表的头节点。

2、解题思路:

为防止链表断开,需要定义3个指针:分别是指向当前遍历到的节点、当前节点的前一个节点、当前节点的后一个节点。反转后链表的头节点即是原始链表的尾节点。

当前节点即为pNode;当前节点的下一个节点即为pNext;当前节点的上一个节点即为上一个当前节点。

将当前节点的上一个节点赋给当前节点的下一个节点。

当当前节点的下一个节点为空时,则当前节点就是链表的最后一个链表,即反转链表的的头节点。

当当前节点为空时,则退出while循环。

3、测试用例:

输入的链表头指针是nullptr;

输入的链表只有一个节点;

输入的链表有多个节点。