当前位置: 首页 > news >正文

逆置单链表的两种方法

一、无限头插

1)申请两个指针p和q,p用来指向第一个有效节点,q先赋值为NULL

2)把辅助节点的next置为NULL

3)进入while()循环,循环条件是p指向的节点存在

4)通过p和q的配合,让p指向的节点头插到plist指向的辅助节点后面

void Reverse1(Node* plist)
{assert(plist != NULL);//确保最少有两个有效节点才需要逆置 if (plist->next == NULL || plist->next->next == NULL){return;}Node* p = plist->next;Node* q = NULL;plist->next = NULL;while (p != NULL){q = p->next;p->next = plist->next;plist->next = p;p = q;}
}

二、不借助辅助节点的参与,使用三个指针

1)将辅助节点扔到一边去(不借助它)

2)申请3个指针p,q,r,分别让p先指向第一个有效节点,让g指向第二个有效节点,再让r先赋值为NULL

3)进入while循环,循环条件是 q 不为NULL

4)立马把q的next给到r,然后逆置p和q之间的箭头,也就是让q的next保存p的地址

5)再让p同步到q的位置,再让q同步到r的位置

6)当while循环结束,代表着所以有效节点之间的next已修正完成(箭头指向),这时只需要让最初的辅助节点把此时q指向的节点指向即可

void Reverse2(Node* plist)
{assert(plist != NULL);if (plist->next == NULL || plist->next->next == NULL){return;}Node* p = plist->next;Node* q = p->next;Node* r = NULL;p->next = NULL;while (q != NULL){r = q->next;q->next = p;p = q;q = r;}plist->next = p;
}

http://www.dtcms.com/a/396188.html

相关文章:

  • 跨境电商手机app平台资源企业网站排名优化价格
  • 进程VS线程
  • 湖北建设厅造价网站网站切换语言怎么做的
  • 黑白网站设计wordpress安装主题要多久
  • LeetCode 3467.将数组按照奇偶性转化
  • 【Day 64】Linux-抓包工具
  • 要建一个优惠卷网站怎么做wordpress评论表情插件
  • 重庆营销型网站建设价格微信分销平台排行
  • 网站前台模板下载alexa排名前三十
  • 如何学习网站建设专业门户网站开发公司
  • 并发事务问题、隔离级别
  • 自动驾驶的车辆电子电气(E/E)架构拓扑的设计原则 --- 系统划分与权衡参数
  • 定制网站和模板建站哪个更好用react做的网站上传
  • 郑州网站建设需要多少钱网站做二级域名干什么用
  • 为什么网站浏览不是做的那样网站页面
  • 做网站参考文献asp系统网站怎么做优化
  • NCSS 2025 最新安装教程(图文详解)
  • 河北城乡住房建设厅网站西部数码网站管理系统
  • 网站制作手机端wordpress 脚本
  • 网站制作 番禺wordpress自建站
  • 淘客网站app建设wordpress 777
  • 荆门做网站的公司中信建设有限责任公司陶杨
  • 湖南省建设厅田明革简介网站优化软件开发
  • 电子商城网站建站客crm网站
  • 外贸一般上什么网站运营托管公司
  • 北京手机版网站制作恩施seo
  • 为什么现在建设银行要下载网站激活码网站建设与管理维护说课
  • 公众号做网站华强北网上商城
  • 时尚类网站建设西安市网站制作公司
  • 【完整源码+数据集+部署教程】眼结膜分割系统: yolov8-seg-C2f-ODConv