《剑指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".当从该字符流中读出 ...
随机推荐
- iOS 网易彩票-6设置模块三(常用小功能)
该篇文章中,用到很多iOS开发过程中常用的小功能,当前只是将这些功能集成到网易彩票的设置中.iOS-常用小功能介绍,请参考我的另一篇文章: iOS 常用小功能 总结:http://www.cnblog ...
- Quick Look at the Air Jordan 32
A color with 25 years of history in the Air Jordan line will once again leave its mark on the Air Jo ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON max_connection
zw版[转发·台湾nvp系列Delphi例程]HALCON max_connection procedure TForm1.Button1Click(Sender: TObject);var ho_I ...
- ios 透过上层视图点击相应下方视图的点击事件
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ UIView *hitView = [super hitTest:point ...
- JsonPath的使用
语法: JsonPath 描述 $ 根节点 @ 当前节点 .or[] 子节点 .. 选择所有符合条件的节点 * 所有节点 [] 迭代器标示,如数组下标 [,] 支持迭代器中做多选 [start:end ...
- linux常用命令:ping 命令
Linux系统的ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地 址192.168.1.1试试 ...
- 【tensorflow】pip 安装失败的原因
linux系统旧版本: pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27- ...
- Linux基础命令---ar
ar ar指令可以创建.修改库,也可以从库中提取单个模块.库是一个单独的文件,里面包含了按照特定结构组织起来的其他文件,我们称作member.归档文件通常是一个二进制文件,我们一般将归档文件当作库来使 ...
- j2ee分布式缓存同步实现方案dlcache v1.0.1
j2ee分布式缓存同步实现方案dlcache v1.0.1 发布 修复问题: 1.支持两个层次的缓存,典型的用于产品大类.产品小类,数据字典以及子项: 更新后见: pan http://pan.bai ...
- 20145319 《网络渗透》DNS欺骗
20145319 <网络渗透>DNS欺骗 实验内容 dns欺骗实质上就是一种通过修改dns文件来改变目标想访问的域名和对应ip的攻击,使得目标在访问自己常用域名时不知不觉落入我们的圈套(可 ...