博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表的反转
阅读量:6351 次
发布时间:2019-06-22

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

题目:定义一个函数,输入一个链表的头节点,反转该链表并返回反转后链表的头节点,链表的定义如下:

struct ListNode{

  int value;

  ListNode* next;

};

  链表反转的过程中要防止链表的断裂,假设每次都必须保存当前扫描节点的上一个结点,和下一个节点,不停的扫描此节点是否为nullptr,在循环中每次都定义一个临时的结点来保存,当前结点的下一个节点,然后在循环中判断此临时节点是否为空,若为空,则证明,此节点就是要找的最后要作为的头节点,否则的话,把当前结点的next指向上一个结点,然后此结点又作为新的上一个结点,把临时的节点赋给当前结点,重新的循环。跳出循环后返回最后一个结点。

1 struct ListNode{ 2     int value; 3     ListNode *next; 4 }; 5 ListNode* ReverseList1(ListNode* phead) 6 { 7     ListNode* Node = phead;//当前检测的结点 8     ListNode* PreNode = nullptr;//当前结点的上一个结点 9     ListNode* ReHeadNode= nullptr;//最终要会返回的头结点10     while (Node != nullptr)11     {12         ListNode* TempNext = Node->next;//临时结点,用来保存下一位置13         if (TempNext == nullptr)//若下一位置为空,证明此结点就是要返回的头结点14             ReHeadNode = Node;15         Node->next = PreNode;//指针反转16         PreNode = Node;//当前结点作为新的上一结点17         Node = TempNext;//当前结点跳到下一位置,继续检测18     }19     return ReHeadNode;//返回头结点20 }

 

转载于:https://www.cnblogs.com/General-up/p/5428934.html

你可能感兴趣的文章
Spring声明式事务管理之二:核心接口API
查看>>
LNMP环境安装(二)
查看>>
MFC对话框编程-图片控件
查看>>
nodejs启动webserver服务
查看>>
小偷被抓叫嚣:我不偷警察没饭吃
查看>>
python初学—-实现excel里面读数据进行排序
查看>>
用户体验升级后 “谁行谁上”让百度Q4财报更有底气
查看>>
直播相关学习链接
查看>>
使用RPM包工具和源码包编译安装Linux应用程序
查看>>
VoIP——开启免费通话新时代的先锋
查看>>
Linux下rsync的用法
查看>>
apache虚拟主机、日志轮询、日志统计、去版本优化
查看>>
java代码实现开启openoffice服务和关闭sffice.exe进程
查看>>
docker镜像的使用方法
查看>>
提升HTTPS安全评级
查看>>
iOS开发过程中的心得
查看>>
QOS配置命令
查看>>
linux安装搭建media-wiki
查看>>
使用 MPI for Python 并行化遗传算法
查看>>
widget
查看>>