博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZ-C-16
阅读量:6213 次
发布时间:2019-06-21

本文共 2109 字,大约阅读时间需要 7 分钟。

剑指offer第十六题:反转链表

1 //============================================================================ 2 // Name        : JZ-C-16.cpp 3 // Author      : Laughing_Lz 4 // Version     : 5 // Copyright   : All Right Reserved 6 // Description : 反转链表 7 //============================================================================ 8  9 #include 
10 #include "List.h"11 #include
12 using namespace std;13 14 ListNode* ReverseList(ListNode* pHead) {15 ListNode* RevNode = pHead;16 ListNode* Node = pHead;17 ListNode* preNode = NULL;18 while (Node != NULL) {
//考虑链表为空的情况19 ListNode* nexNode = Node->m_pNext;20 if (nexNode == NULL) {21 RevNode = Node; //在原链表最后一个结点处,将尾结点赋值为新链表的头结点22 }23 Node->m_pNext = preNode; //修改Next结点24 preNode = Node;25 Node = nexNode;26 }27 return RevNode;28 }29 30 // ====================测试代码====================31 ListNode* Test(ListNode* pHead) {32 printf("The original list is: \n");33 PrintList(pHead);34 35 ListNode* pReversedHead = ReverseList(pHead);36 37 printf("The reversed list is: \n");38 PrintList(pReversedHead);39 40 return pReversedHead;41 }42 43 // 输入的链表有多个结点44 void Test1() {45 ListNode* pNode1 = CreateListNode(1);46 ListNode* pNode2 = CreateListNode(2);47 ListNode* pNode3 = CreateListNode(3);48 ListNode* pNode4 = CreateListNode(4);49 ListNode* pNode5 = CreateListNode(5);50 51 ConnectListNodes(pNode1, pNode2);52 ConnectListNodes(pNode2, pNode3);53 ConnectListNodes(pNode3, pNode4);54 ConnectListNodes(pNode4, pNode5);55 56 ListNode* pReversedHead = Test(pNode1);57 58 DestroyList(pReversedHead);59 }60 61 // 输入的链表只有一个结点62 void Test2() {63 ListNode* pNode1 = CreateListNode(1);64 65 ListNode* pReversedHead = Test(pNode1);66 67 DestroyList(pReversedHead);68 }69 70 // 输入空链表71 void Test3() {72 Test(NULL);73 }74 75 int main(int argc, char** argv) {76 Test1();77 Test2();78 Test3();79 80 return 0;81 }

 

转载于:https://www.cnblogs.com/Laughing-Lz/p/5567308.html

你可能感兴趣的文章
OpenGL编程逐步深入(六)平移变换
查看>>
Django重新整理4---ModelForm-set(批量处理数据)
查看>>
【算法学习】01---java基础以及算法基础常用类库
查看>>
POJ1159解题心得
查看>>
象山县教育局网站群建设项目签约西部动力
查看>>
UVA11542 Square(高斯消元 异或方程组)
查看>>
Java中private、protected、public和default的区别
查看>>
软件工程作业个人项目:WC项目
查看>>
HDU 4597 Play Game 记忆化DP
查看>>
tomcat访问日志分析
查看>>
Codeforces Round #525 (Div. 2)
查看>>
innoDB 存储引擎
查看>>
第二章
查看>>
LINUX信号发送
查看>>
GetObject 得 指定图形对象的信息
查看>>
DNS 攻击方式及攻击案例
查看>>
牛客网上的ST阶跃表
查看>>
[转]git学习------>git-rev-parse命令初识
查看>>
手机 简易浏览器 WebView的基本使用 返回 缓存 进度条
查看>>
mysql在linux下的安装
查看>>