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

【LeetCode热题100(33/100)】排序链表

题目地址:链接
思路:

  1. 根据分治的思想,通过递归,使用双指针获取链表中点,不断将指针分裂,直到不能变小为止(!head && !head.next)
  2. 不断将分裂的指针进行两两合并,最终合并成一个有有序的链表。
/*** Definition for singly-linked list.* function ListNode(val, next) {*     this.val = (val===undefined ? 0 : val)*     this.next = (next===undefined ? null : next)* }*/
/*** @param {ListNode} head* @return {ListNode}*/
let getMiddleNode = (head) => {let dummy = new ListNode(0, head);let [p, q] = [dummy, dummy];q = (q.next)?.next ?? null;while(q) {p = p.next;q = (q.next)?.next ?? null;}let ans = p.nextp.next = null;return ans;
}let mergeListNode = (h1, h2) => {let dummy = new ListNode(0);let p = dummy;while(h1 && h2) {if(h1.val < h2.val) {p.next = h1;h1 = h1.next;} else {p.next = h2;h2 = h2.next;}p = p.next;}p.next = h1 ?? h2;return dummy.next;
}
var sortList = function(head) {if(!head || !head.next) {return head;}let middleNode = getMiddleNode(head);let q = sortList(head);let p = sortList(middleNode);let ans = mergeListNode(q, p);return ans;
};
http://www.dtcms.com/a/438579.html

相关文章:

  • C++坑系列,C++ std::atomic 拷贝构造函数问题分析与解决方案
  • 视频网站做板块栏目asp.net企业网站
  • 如何做超一个电子商务网站做网站有个名字叫小廖
  • Font Awesome Web 应用图标
  • 校企合作下的中医实训室:如何实现 “教学 - 就业” 无缝衔接?
  • Python学习之Day04学习(持久存储与推倒数据)
  • 3100. 换水问题 II
  • 南宁网站搜索引擎优化上海做网站的的公司有哪些
  • P1420 最长连号
  • 渠道推广代理郑州厉害的seo优化顾问
  • LangChain源码分析(八)- Document加载器
  • Day91 基本情报技术者 单词表27 AI基礎
  • 质量管理方法
  • 【ATBS with Python】QA Chap1 Python Basics
  • Java 之继承与多态
  • 建设局电话965559seo综合查询平台官网
  • 做网站分辨率多少wordpress调查问卷插件
  • 东莞网站关键词优化排名wordpress init
  • 淘客APP的联盟规则适配层设计:如何通过策略模式快速响应淘宝/京东/拼多多政策变动?
  • Java-140 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(2)
  • AI心理类APP测评:产品设计、技术实现及对独立开发者的启示
  • AI编程开发系统013-基于Vue+SpringBoot的“知语”花卉销售网站(源码+演示视频+讲解+lw)
  • 广州有几个区分别叫什么南京做网站优化哪家好
  • 【Jitsi Meet】阿里云Docker安装Jitsi Meet后的调整
  • 企业网站颜色手机做网站软件
  • php入门
  • 深圳网站搭建哪里好奎文建设局网站
  • 用织梦建设网站杭州公司官方网站制作
  • 数仓各层级设计总结
  • 8.设计模式-两阶段终止(优雅停机)