《剑指offer》第二十四题(反转链表)
- // 面试题24:反转链表
- // 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的
- // 头结点。
- #include <iostream>
- #include "List.h"
- ListNode* ReverseList(ListNode* pHead)
- {
- ListNode* pReversedHead = nullptr;//设置三个节点变量,第一是已经被反转的头节点(原链表尾节点)
- ListNode* pNode = pHead;//第二个是当前节点
- ListNode* pPrev = nullptr;//第三是原链表中当前节点的前一个节点
- while (pNode != nullptr)
- {
- ListNode* pNext = pNode->m_pNext;//pNext是原链表中当前节点的后一个节点
- if (pNext == nullptr)
- pReversedHead = pNode;
- pNode->m_pNext = pPrev;
- pPrev = pNode;
- pNode = pNext;
- }
- return pReversedHead;
- }
- // ====================测试代码====================
- ListNode* Test(ListNode* pHead)
- {
- printf("The original list is: \n");
- PrintList(pHead);
- ListNode* pReversedHead = ReverseList(pHead);
- printf("The reversed list is: \n");
- PrintList(pReversedHead);
- return pReversedHead;
- }
- // 输入的链表有多个结点
- void Test1()
- {
- ListNode* pNode1 = CreateListNode();
- ListNode* pNode2 = CreateListNode();
- ListNode* pNode3 = CreateListNode();
- ListNode* pNode4 = CreateListNode();
- ListNode* pNode5 = CreateListNode();
- ConnectListNodes(pNode1, pNode2);
- ConnectListNodes(pNode2, pNode3);
- ConnectListNodes(pNode3, pNode4);
- ConnectListNodes(pNode4, pNode5);
- ListNode* pReversedHead = Test(pNode1);
- DestroyList(pReversedHead);//这都不忘删,你是魔鬼吗
- }
- // 输入的链表只有一个结点
- void Test2()
- {
- ListNode* pNode1 = CreateListNode();
- ListNode* pReversedHead = Test(pNode1);
- DestroyList(pReversedHead);
- }
- // 输入空链表
- void Test3()
- {
- Test(nullptr);
- }
- int main(int argc, char* argv[])
- {
- Test1();
- Test2();
- Test3();
- system("pause");
- return ;
- }
《剑指offer》第二十四题(反转链表)的更多相关文章
- 剑指Offer面试题:15.反转链表
一.题目:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点. 链表结点定义如下,这里使用的是C#描述: public class Node { public in ...
- 【剑指offer 面试题16】反转链表
思路: 用三个指针preNode.curNode.nextNode完成. #include <iostream> using namespace std; struct ListNode ...
- C++版 - 剑指offer 面试题16:反转链表(Leetcode 206: Reverse Linked List) 题解
面试题16:反转链表 提交网址: http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&tqId= ...
- 剑指Offer(书):反转链表
题目:输入一个链表,反转链表后,输出新链表的表头. 分析:要分清他的前一个节点和后一个节点,开始的时候前节点为null,后节点为head.next,之后,反转. public ListNode Rev ...
- 【剑指offer】面试题 24. 反转链表
面试题 24. 反转链表
- 《剑指offer》面试题16 反转链表 Java版
(输入链表的头节点,反转链表) 书中方法:对于一个链表,我们只能从头往后遍历,如果要反转,我们需要更改当前节点的next域指向前一个节点,此时链表断开,为了能继续修改下一个节点的next域,我们还要维 ...
- 【剑指Offer】面试题24. 反转链表
题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3 ...
- 《剑指offer》面试题24. 反转链表
问题描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4-> ...
- 《剑指offer》第四题(二维数组中的查找)
// 二维数组中的查找 // 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按 // 照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 // 整数,判断数组 ...
- 剑指offer五十四之字符流中第一个不重复的字符
一.题目 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...
随机推荐
- UNDFTD x Nike Air Max 97 OG Black
The UNDFTD x Nike Air Max 97 OG Black is releasing way sooner than anticipated. This collaborative r ...
- 软件包管理:rpm命令管理-校验和文件提取
校验主要用于判断文件是否做了更改 修改标志: 会用-V,会看输出结果即可. 当有误操作,比如删了某一个文件,只需知道他属于哪一个rpm包,可用提取找回覆盖就行.并不把整个rpm包安装,而是提取其中的某 ...
- Junit4用法
序号 方法和描述 1 void assertEquals(boolean expected, boolean actual) 检查两个变量或者等式是否平衡 2 void assertTrue(bool ...
- 【week6】团队贡献分
小组名称:nice! 小组成员:李权 于淼 杨柳 刘芳芳 项目内容:约跑app 完成任务: 10% 20% 70% 好 于淼 李权 中 刘芳芳 杨柳 差 1.李权8.4 2.于 ...
- 【转】Redis之发布 订阅模式
本例包括 jedis_demo:入口类 jedis_control:jedis控制器(jedis的连接池) jedis_pub_sub_listener:订阅的监听器 singleton_agent: ...
- 如何禁用MySql总是定时弹出一个MySQLInstallerConsole.exe的窗口
如何禁用MySql总是定时弹出一个MySQLInstallerConsole.exe的窗口 禁用mysql总是弹出一个安装框的定时任务这一条安装命令,Installing MySQL 5.6.21 u ...
- 短网址(short URL)系统的原理及其实现
短网址(short URL)系统的原理及其实现 https://hufangyun.com/2017/short-url/?hmsr=toutiao.io&utm_medium=toutiao ...
- mysql多实例安装与ssl认证
mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二 ...
- Linux学习笔记之如何让普通用户获得ROOT权限
在学习sodu的时候,我发现一些命令只能由root用户使用,普通用户使用会提示此用户没有使用sudo的权限.我想到的解方法是把正在使用的普通用户获得root权限,于是我通过百度和询问老师知道了如何去实 ...
- P3501 [POI2010]ANT-Antisymmetry
P3501 [POI2010]ANT-Antisymmetry 二分+hash 注意:答案超出int范围 ------------ 先拿一个反对称串来做栗子:010101 我们可以发现 0101(左边 ...