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

南京淄博网站建设方案买奢侈品代工厂做的产品的网站名

南京淄博网站建设方案,买奢侈品代工厂做的产品的网站名,淘宝客商城网站建设,关于网站设计的书籍少年的书桌上没有虚度的光阴 题目描述 请你对链表进行排序 思路分析 核心思想:归并排序 有三个部分 链表排序实现 1. merge 函数 21.见 合并两个有序链表, 首先创建一个虚拟头节点 newhead,并使用指针 tail 来构建合并后的链表。 通过…

少年的书桌上没有虚度的光阴

题目描述

请你对链表进行排序

思路分析

  • 核心思想:归并排序

有三个部分

链表排序实现

1. merge 函数

21.见 合并两个有序链表,

  • 首先创建一个虚拟头节点 newhead,并使用指针 tail 来构建合并后的链表。

  • 通过循环比较 list1list2 节点的值,将较小值的节点连接到 tail 后面,并相应地移动指针。

  • 当其中一个链表遍历完后,将另一个链表的剩余部分直接连接到 tail 后面。

  • 最后返回虚拟头节点的下一个节点,即合并后链表的头节点。

2. findMiddle 函数

该函数用于寻找链表的中间节点,采用快慢指针的方法:

  • fast 指针每次移动两步,slow 指针每次移动一步。

  • fast 指针到达链表末尾时,slow 指针就指向链表的中间节点。

3. sortList 函数

这是核心的排序函数,使用归并排序算法对链表进行排序:

  • 首先判断链表是否为空或只有一个节点,如果是则直接返回该链表。

  • 调用 findMiddle 函数找到链表的中间节点,将链表分成左右两部分。

  • 递归地对左右两部分链表分别调用 sortList 函数进行排序。

  • 最后调用 merge 函数将两个有序的子链表合并成一个有序链表。

完整代码

class Solution {
public:// 合并两个有序链表ListNode* merge(ListNode* list1, ListNode* list2) {auto  newhead = new ListNode(0); // 使用明确的类型名称auto  tail = newhead;while (list1 && list2) {if (list1->val < list2->val) {tail->next = list1;list1 = list1->next;} else {tail->next = list2;list2 = list2->next;}tail = tail->next;}tail->next = list1 ? list1 : list2; // 处理剩余部分return newhead->next;}// 寻找中间节点ListNode* findMiddle(ListNode* head) {ListNode* fast = head;ListNode* slow = head;while (fast->next && fast->next->next) {fast = fast->next->next;slow = slow->next;}return slow;}// 归并排序链表ListNode* sortList(ListNode* head) {if (head==NULL ||head->next==NULL) return head; // 检查链表长度// 找到链表的中间节点ListNode* mid = findMiddle(head);ListNode* right = mid->next;mid->next = nullptr; // 切分链表// 递归地对左右两部分进行排序ListNode* l = sortList(head);ListNode* r = sortList(right);// 合并两个有序链表return merge(l, r);}
}
};

复杂度分析

  • 时间复杂度: O(nlogn)

  • 空间复杂度: O(logn)

http://www.yayakq.cn/news/587135/

相关文章:

  • 魏县网站制作php网站运行很慢
  • 建网站需要多少钱和什么条件有关中国教育培训网
  • 上海做网站推广关键词郑州网站搭建的公司
  • 哪家专门做特卖网站白酒类网站模板
  • 做网站开发的商标注册多少类网站设计所遵循的原则
  • 国内设计网站推荐代理公司资质
  • 网站建设报价ppt模版网站数据库模板下载
  • 哈尔滨道外区建设局官方网站百度智能云建站教程
  • 制作网站图片长沙做网站a微联讯点很好
  • 正规网站建设网站建设 jsp php
  • 一级a做爰片图片免费观看网站c 网站开发怎么弹出输入框
  • 手机网站免费生成网站怎么做百度权重
  • php图书管理系统网站开发网站建设的销售术语
  • 如何 在网站上面做推广电商公司组织架构图
  • 教做面点的网站微分销系统软件
  • 合肥网站开发招聘有哪些做软件的网站
  • 茶叶网站策划书这个域名的网站做违法的事
  • 网站开发属于软件开发类吗html5手机网站分辩率
  • 四川做网站价格虚拟主机可以建设什么网站
  • 傻瓜式网站建设男做直播网站好
  • 聊城网站建设哪家专业无锡效果图制作
  • 做影视后期应该关注哪些网站小城市门户网站建设方案
  • 立方米网站建设网站流量分布
  • 在征婚网站上认识做期货品牌推广的意义
  • 简约大气网站设计欣赏东莞知名网站推广
  • 人是用什么做的视频网站吗织梦5.7转wordpress
  • 李志自己做网站wap医院网站建设
  • 域名备案与网站不一致物流加盟信息网站
  • 建设银行关方网站家居企业网站建设讯息
  • 温州手机网站建设wmwl手机网站模板 导航