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

中国建设银行浙江省丽水市分行网站iis wordpress 500

中国建设银行浙江省丽水市分行网站,iis wordpress 500,飞虎队网站建设,网站统计模板LeetCode 147. 对链表进行插入排序 | C语言版LeetCode 147. 对链表进行插入排序题目描述解题思路思路一:使用栈代码实现运行结果参考文章:思路二:减少遍历节点数代码实现运行结果参考文章:[]()LeetCode 147. 对链表进行插入排序 …

LeetCode 147. 对链表进行插入排序 | C语言版

    • LeetCode 147. 对链表进行插入排序
      • 题目描述
      • 解题思路
        • 思路一:使用栈
          • 代码实现
          • 运行结果
          • 参考文章:
        • 思路二:减少遍历节点数
          • 代码实现
          • 运行结果
          • 参考文章:[]()

LeetCode 147. 对链表进行插入排序

题目描述

题目地址:147. 对链表进行插入排序
给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。

插入排序 算法的步骤:

插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
重复直到所有输入数据插入完为止。
下面是插入排序算法的一个图形示例。部分排序的列表(黑色)最初只包含列表中的第一个元素。每次迭代时,从输入数据中删除一个元素(红色),并就地插入已排序的列表中。

对链表进行插入排序。

在这里插入图片描述

解题思路

思路一:使用栈

代码实现

c

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* insertionSortList(struct ListNode* head){if(head==NULL) return head;//设置虚拟头结点struct ListNode* dummyHead=(struct ListNode*)malloc(sizeof(struct ListNode));dummyHead->next=NULL;//dummyHead->next=head;//当前节点(要插入的节点)curstruct ListNode* cur=head;struct ListNode* pre=dummyHead;//dummyHead->1(pre)->3->4->2(cur)->NULL(next)//如:插入节点2,操作如下while(cur!=NULL){//循环中值不小于当前值时候就需要插入当前值了while(pre->next!=NULL && pre->next->val<cur->val){pre=pre->next;}//在pre和next之间插入数据(2)struct ListNode* next=cur->next;//步骤一:保存cur的下一个节点next,因为本次循环结束后,要把当前节点移动到下一个节点cur->next=pre->next;//步骤二:cur(2)的指针域指向pre->next(3)pre->next=cur;//步骤三:pre(1)的指针域指向cur(2)pre=dummyHead;//步骤四:pre重新指向虚拟头节点来找下一个插入位置cur=next;//步骤五:cur(2)节点直接往后移动(到next)//dummyHead(pre)->1->2->3->4->NULL}return dummyHead->next;
}

C++

/*** 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* insertionSortList(ListNode* head) {if(head==NULL) return head;//设置虚拟头结点ListNode* dummyHead = new ListNode(0);//dummyHead->next=head;//当前节点(要插入的节点)curListNode* cur=head;ListNode* pre=dummyHead;//dummyHead->1(pre)->3->4->2(cur)->NULL(next)//如:插入节点2,操作如下while(cur!=NULL){//循环中值不小于当前值时候就需要插入当前值了while(pre->next!=NULL && pre->next->val<cur->val){pre=pre->next;}//在pre和next之间插入数据(2)ListNode* next=cur->next;//步骤一:保存cur的下一个节点next,因为本次循环结束后,要把当前节点移动到下一个节点cur->next=pre->next;//步骤二:cur(2)的指针域指向pre->next(3)pre->next=cur;//步骤三:pre(1)的指针域指向cur(2)pre=dummyHead;//步骤四:pre重新指向虚拟头节点来找下一个插入位置cur=next;//步骤五:cur(2)节点直接往后移动(到next)//dummyHead(pre)->1->2->3->4->NULL}return dummyHead->next;}
};
运行结果

在这里插入图片描述

参考文章:

https://leetcode.cn/problems/insertion-sort-list/solutions/491331/147-kao-cha-lian-biao-zong-he-cao-zuo-xiang-jie-by/?q=%E4%BB%A3%E7%A0%81&orderBy=most_relevant

思路二:减少遍历节点数

代码实现
在这里插入代码片
运行结果
参考文章:

在这里插入图片描述

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

相关文章:

  • 云南建投第七建设有限公司网站百度wordpress插件
  • 广西网站建设推荐网站建设发朋友圈的图片
  • 玉环建设局网站销售营销方案100例
  • 做网站视频存储健身网站怎么做
  • 绝对大气漂亮的响应式网站后台模板门户网站编辑联系方式
  • 爱站seo工具包wordpress页面转文章
  • 北京专业网站设计推荐wordpress域名替换
  • 做ppt找图片网站中天建设集团有限公司是央企吗
  • 东莞网站优化方法买网站不给我备案
  • 宁城网站建设网站建设iis配置
  • 网站添加友情链接特价旅游机票网站建设
  • 怎样做购物网站怎么样建立自己的网站
  • swift 网站开发注册公司怎么查询
  • 设计比较好的网站中山seo技术
  • 商城网站开发多久网站备案信息被删除
  • 旅游类网站开发设计报告百度入驻
  • 漯河网站seowordpress 直播
  • vps 需刷新几次才能打开网站分类信息多城市网站
  • 网站的软件维护包括什么天津平台网站建设推荐
  • 江安县建设招标网站上海三大设计院
  • 学在郑州app下载温州做网站整站优化
  • 做旅游攻略什么网站最好wordpress图片之间空一行
  • 企业网站建设的具体需求天津做一个简单的网站
  • 画册欣赏网站建设网站需要什么资质
  • 长沙建网站企业网上开店的流程是什么
  • 网站建设属于什么职能多wordpress整合
  • 用织梦做的网站 图片打开很慢山东网站建设开发外包
  • 建设银行网站功能介绍企业网站建设分析
  • 广州专业的网站制作西安的互联网公司有哪些
  • 深圳云网站建站公司商丘网站制作教程