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

dw做网站链接南昌网站排名优化软件

dw做网站链接,南昌网站排名优化软件,公司主页是什么意思,手机版网站模板下载文章目录 1. 题目描述2. 解题思路3. 代码实现 1. 题目描述 2. 解题思路 按我们以往的排序算法来看,针对链表来说都是太不合适,因为很多都会出现指针前移后移,后移还好说,前移对于链表来说就太难了,而且大部分都是某一个…

文章目录

  • 1. 题目描述
  • 2. 解题思路
  • 3. 代码实现

1. 题目描述

在这里插入图片描述

2. 解题思路

  按我们以往的排序算法来看,针对链表来说都是太不合适,因为很多都会出现指针前移后移,后移还好说,前移对于链表来说就太难了,而且大部分都是某一个位置和另一个离它很远的位置进行比较交换位置,这在链表中是不切实际的。
  但是其中的归并,非常的适合链表,相信大家也做过合并两个排序的链表和合并k个已排序的链表,其实针对于单个链表的排序,归并也是非常合适的,因为其底层其实是两个挨着的结点进行排序的。
  其原理就是先通过递归将一个链表分成一个一个单个的结点,然后两两进行比较、排序、连接,这是第一次排序,再往后就是具有两个结点的链表和另一个具有两个结点的链表进行排序,那么此时问题就是合并两个排序的链表了
  这样我们就完成了一个链表的排序。那么现在的问题就是如何分隔链表呢? 就是通过递归,在单次中,我们使用left,mid,right三个指针:
在这里插入图片描述
  left和mid一次走一步,right一次走两步,这样当right到最后一个结点时,mid就在中间,然后再让left->next指向nullptr,断开两个链表。这样再对左右两个链表递归下去,就完成了链表的分隔。当分隔成一个结点的时候,就会开始排序。
  在我八大排序的博客中的归并排序中,有详细的分隔过程,想了解的可以点击跳转。

3. 代码实现

/*** struct ListNode {*	int val;*	struct ListNode *next;*	ListNode(int x) : val(x), next(nullptr) {}* };*/
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head ListNode类 the head node* @return ListNode类*/ListNode* Merge(ListNode* head1, ListNode* head2){if(head1 == nullptr) return head2;if(head2 == nullptr) return head2;auto ret = new ListNode(-1);auto head = ret;while(head1 && head2){if(head1->val < head2->val){ret->next = head1;head1 = head1->next;}else {ret->next = head2;head2 = head2->next;}ret = ret->next;}if(head1) ret->next = head1;if(head2) ret->next = head2;return head->next;}ListNode* sortInList(ListNode* head) {if(head == nullptr || head->next == nullptr)return head;ListNode* left = head, *mid = head->next, *right = head->next;while(right && right->next){left = left->next;mid = mid->next;right = right->next->next;}left->next = nullptr;return Merge(sortInList(head), sortInList(mid));}
};
http://www.yayakq.cn/news/604325/

相关文章:

  • 想学网站建设方向的研究生松江做微网站
  • 陇西网站建设公司安阳seo网站优化
  • 林州市住房和城乡建设部网站小程序主题wordpress
  • 外贸网站设计案例租号网站咋做
  • 怎样策划一个营销型网站加强门户网站建设方案
  • 网站申请流程嵌入式软件开发工程师培训
  • 自助建站源码下载如何做网络营销推广就属金手指饣
  • 荣耀正品查询入口三门峡网站优化
  • 金融平台网站开发雄县做网站的
  • 网站动态背景欣赏东莞常平邮政编码多少
  • 网站公网安备链接怎么做html网页代码详解
  • 怎样做网站平叿wordpress菜单子分类
  • 做网站怎么回本全屋装修公司
  • 有创意的网站开发wordpress加速插件
  • 专业网站建设定制中国十大服装设计公司
  • 一个公司只能备案一个网站吗建国内外网站有什么区别
  • 网站备案变更主体电话安卓搭建网站
  • 茶叶企业网站开发源码石家庄企业logo设计
  • 如何做阿里巴巴网站室内外设计
  • jquery网站模版pc网站开发成app难度
  • 怎么做网站建设作业怎么上传网站模板
  • 小卖部做网站一个网站做多有几种颜色
  • 东莞网站优化服务公司搜索引擎排名大全
  • 长治哪里能找到做网站的技术员北京网站建设龙鹏
  • 电子商务网站开发与应用论文wordpress+首页多栏
  • 学网站建设与维护wordpress管理员评论在哪儿设置
  • 松江做移动网站设计服务佳的广州网站建设
  • 养老院网站建设手机网站建设基本流程图
  • 有专业做网站的吗gre考h5游戏网站入口
  • 用网站ip做代理服务器网站建设个人简历的网页制作