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

leetcode 148. Sort List

148. Sort List

题目描述

代码:

/*** 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* sortList(ListNode* head) {if(head == nullptr)return nullptr;return merge_sort(head,nullptr);}pair<ListNode*,ListNode*> find(ListNode* head){ListNode* fast = head;ListNode* slow = head;ListNode* preslow = nullptr;while(fast&&fast->next){fast = fast->next->next;preslow = slow;slow = slow->next;}if(preslow == nullptr)return {slow,slow};return {preslow,slow};}ListNode* merge_sort(ListNode *head,ListNode* tail){if(head == tail)return head;auto mid_pair = find(head);if(mid_pair.first == mid_pair.second)return head;mid_pair.first->next = nullptr;ListNode* left  = merge_sort(head,mid_pair.first);ListNode* right = merge_sort(mid_pair.second,tail);ListNode* dummy = new ListNode(-1,nullptr);ListNode* pre = dummy;while(left&&right){if(left->val < right->val){pre->next = left;pre = left;left = left->next;}else{pre->next = right;pre = right;right = right->next;}}if(left)pre->next = left;elsepre->next = right;ListNode* newHead = dummy->next;delete dummy;return newHead;}
};

 

 

http://www.xdnf.cn/news/7972.html

相关文章:

  • 力扣-无重复字符的最长子串
  • Golang 内存模型小结
  • Qt 最新版6.9.0使用MQTT连接腾讯云详细教程
  • window 显示驱动开发-视频内存供应和回收(一)
  • jquery.table2excel方法导出
  • 鸿蒙仓颉开发语言实战教程:实现商城应用首页
  • 尼科彻斯定理
  • Vue 3.0中自定义指令
  • 01-jenkins学习之旅-window-下载-安装
  • 【云原生安全】零信任与机密计算
  • Qt C++实现马的遍历问题
  • 【JavaEE】(1) 计算机如何工作
  • 阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
  • 记录:uniapp 上线部署到微信小程序vendorjs包过大的问题
  • 外网如何连接内网中的mysql数据库服务器?简单网络工具方案
  • Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment
  • 【C++】位图+布隆过滤器
  • JAVA EE(进阶)_CSS
  • 如何排查服务器 CPU 温度过高的问题并解决?
  • C++ 前缀和数组
  • C++STL(二)类模板
  • YCKC【二分查找专题】题解
  • 《对话记忆的进化史:智能体大模型如何实现跨轮次的深度交互》
  • 国酒华夏实业酒水供应链:全品类覆盖打造一站式购销平台
  • 第四十三节:人脸检测与识别-人脸识别基础 (Eigenfaces, Fisherfaces, LBPH)
  • Selenium自动化测试终极指南:从原理到实战
  • 【Python生成器全解析】从基础到高阶应用实战
  • C语言—Linux环境下CMake设置库(动态/静态)
  • 借助IEDA ,Git版本管理工具快速入门
  • 多线程(七)