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

反转链表II


江湖一笑浪滔滔,红尘尽忘了


题目

示例

 



       思路 

链表这部分的题,不少都离不开单链表的反转,参考:反转一个单链表

这道题加上哨兵位的话会简单很多,如果不加的话,还需要分情况一下,像是从头节点开始反转还是头节点以后开始反转,有了哨兵位后就只有一种情况了。

malloc一个哨兵位,next指向head,遍历两次,一次找起点,,开始节点的前一个节点保存下来,为了连接reverse返回的节点地址;一次找结束,结束的节点next节点保存下来,并使该节点的next指针置空,剩下的就是连接的问题,比较简单。

 



代码 

struct ListNode* reverse(struct ListNode* head)
{struct ListNode* n1 = NULL;struct ListNode* n2 = head;struct ListNode* n3 = NULL;if(n2)n3 = n2->next;while (n2){n2->next = n1;n1 = n2;n2 = n3;if (n3)n3 = n3->next;}return n1;
}struct ListNode* reverseBetween(struct ListNode* head, int left, int right)
{if(head == NULL || left >= right){return head;}struct ListNode* phead = malloc(sizeof(struct ListNode));phead->next = head;struct ListNode* prev = NULL;struct ListNode* cur1 = phead;struct ListNode* cur2 = phead;struct ListNode* Back = NULL;struct ListNode* next = NULL;int num1 = left;int num2 = right;while(num1--){prev = cur1;cur1 = cur1->next;}while(num2--){cur2 = cur2->next;}next = cur2->next;cur2->next = NULL;Back = reverse(cur1);prev->next = Back;int num = right - left;while(num--){Back = Back->next;}if(Back)Back->next = next;head = phead->next;free(phead);return head;
}


 

个人主页:Lei宝啊 

愿所有美好如期而遇

 

http://www.lryc.cn/news/136093.html

相关文章:

  • HTML 和 CSS 来实现毛玻璃效果(Glassmorphism)
  • 【技术】国标GB28181视频平台EasyGBS通过对应密钥上传到其他平台展示的详细步骤
  • SpeedBI数据可视化工具:浏览器上做分析
  • 8.21笔记
  • MyBatis-Plus中公共字段的统一处理
  • SQL的导出与导入
  • 记录一次wordpress项目的发布过程
  • HTML详解连载(8)
  • Linux系统之安装OneNav个人书签管理器
  • 主程技术分享: 游戏项目帧同步,状态同步如何选
  • ChatGPT-4: 半年的深度使用思考
  • 【健康医疗】Axure用药提醒小程序原型图,健康管理用药助手原型模板
  • ERROR in static/js/xxx.js from UglifyJs
  • 阿里云ECS服务器安装PostgreSQL
  • 【核磁共振成像】傅里叶重建
  • Camunda 工作流节点跳转 - 多实例节点判断和跳转
  • MySQL不停重启问题
  • ol-cesium 暴露 Cesium viewer 对象以及二三维切换、viewer 添加点功能示例
  • 国产化-达梦数据库安装2
  • 延长OLED透明屏的使用寿命:关键因素与有效方法分享
  • 域名是指哪一部分?
  • MPP 还是主流架构吗
  • ubuntu查看网速
  • 【官方中文文档】Mybatis-Spring #使用 MyBatis API
  • go gorm belong to也就是多对一的情况
  • 亚马逊云科技 云技能孵化营——机器学习心得
  • Django实现音乐网站 ⒀
  • PySide6学习笔记--基础环境的安装配置
  • 算法通关村第九关——中序遍历与搜索树
  • 测试框架pytest教程(5)运行失败用例-rerun failed tests