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

LeetCode 143.重排链表

题目链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

题目解析

        分析题目后我们可以直接进行模拟实现。

        具体用到的就是我们之前的知识的结合,首先使用快慢指针找到链表的中间结点。然后将后半段链表给翻转一下,然后再让这两个链表进行合并。

代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution 
{
public:// 找出链表中点ListNode* middleListNode(ListNode* head){ListNode* slow=head,* fast=head;while(fast->next!=nullptr&&fast->next->next!=nullptr){slow=slow->next;fast=fast->next->next;}return slow;}// 翻转链表ListNode* reverselist(ListNode* l){ListNode* cur=l;ListNode* prev=nullptr;while(cur){ListNode* next=cur->next;cur->next=prev;prev=cur;cur=next;}return prev;}// 合并链表void reorderList(ListNode* head) {if(head==nullptr||head->next==nullptr||head->next->next==nullptr) return;ListNode* midnode=middleListNode(head);ListNode* l1=head;ListNode* l2=midnode->next;midnode->next=nullptr;l2=reverselist(l2);ListNode* phead=new ListNode(0);ListNode* temp=phead;while(l1||l2){if(l1){temp->next=l1;l1=l1->next;temp=temp->next;}if(l2){temp->next=l2;l2=l2->next;temp=temp->next;}}// ListNode* l1next;// ListNode* l2next;// while(l1!=nullptr&&l2!=nullptr)// {//     l1next=l1->next;//     l2next=l2->next;//     l1->next=l2;//     l1=l1next;//     l2->next=l1;//     l2=l2next;// }}
};

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

相关文章:

  • 不做决策的“RPA机器人”,不是合格的“数字化劳动力”
  • 网页开发中使用highlight.js实现代码高亮 + 行号
  • 访问Apache Tomcat的manager页面
  • Ubuntu 20.04.6 LTS repo int 提示/usr/bin/env: “python“: 权限不够
  • python随手小练5
  • 一分钟!图片生成32种动画;Adobe绘画工具大升级;复盘Kaggle首场LLM比赛;VR科普万字长文 | ShowMeAI日报
  • [Framework] Android Handler 工作原理
  • KITTI数据集中的二进制激光雷达数据(.bin文件)转换为点云数据(.pcd文件)(C++代码)
  • 全球AI人工智能领袖:Anthropic联合创始人丹妮拉·阿莫迪!
  • CoT 的方式使用 LLM 设计测试用例实践
  • 神秘的锦衣卫
  • Springboot中使用Redis
  • 超声波波形生成电路设计
  • C#和JS交互之Microsoft.ClearScript.V8(V8引擎)
  • 9月活动回顾(免费领取PPT)|火山引擎DataLeap、ByteHouse多位专家带来DataOps、实时计算等前沿技术分享!
  • salesforce的按钮执行js代码如何链接到apex代码
  • C语言 —— 操作符
  • 物联网AI MicroPython传感器学习 之 CCS811空气质量检测传感器
  • TCP/IP(十五)拥塞控制
  • vue3 404解决方法
  • Unity中使用Xlua调用lua相关
  • 基于http的protobuf服务实现
  • 基于uniapp的商城外卖小程序
  • 【CSS】Tailwind CSS
  • leetcode-电话号码组合(C CODE)
  • Leetcode92. 反转链表 II
  • 【算法作业记录】
  • 回归预测、分类预测、时间序列预测 都有什么区别?
  • 关于网络协议的若干问题(三)
  • 办公室人人在用的iTab桌面真的好用吗?