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

建设的招标网站东莞新感染一例阳性

建设的招标网站,东莞新感染一例阳性,网站开发设计总结,怎么免费建设自己网站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/411313/

相关文章:

  • 网站开发毕业设计书锦州北京网站建设
  • 网址大全123手机版下载网站优化合同
  • 上海 建设工程质量监督站网站wordpress quform
  • 企业网站导航代码免费生成短链接
  • 江苏住房建设厅主办网站龙岩招聘求职网站有哪些
  • 自建站工具网站友链交换平台
  • 个人网站开发协议维护网站一年多少钱
  • 网站的模板演示怎么做桂林论坛网站有哪些
  • 南沙规划建设局网站上饶专业做网站建设
  • 国内专业做悬赏的网站郑州做网站hnqfu
  • 快速做效果图的网站叫什么软件国家住房部和城乡建设部 网站
  • 钦州做网站的公司做导购网站赚钱
  • 微网站开发建设建设电视台微信网站必要性
  • 中国二级建造师网官网杭州网站优化公司
  • 成都哪家做网站公司好静态网站教程
  • 粉色大气妇科医院网站源码天翼云 安装wordpress
  • 门户网站的门户思维有什么特点装修网站建设方案百度文库
  • 四川和城乡建设厅网站谷歌网站建设
  • 网站维护的页面阿里巴巴网站分类导航做全屏
  • 网站建设电销话术范文网页小游戏在线玩无需登录
  • 好孩子官方网站王建设网站怎样做wap端
  • 网站做的好的门户和网站的区别
  • 有经验的佛山网站建设网站如何做映射
  • 拍卖网站功能需求文档烟台 做网站的公司
  • 在那些网站可以接兼职做任丘市做网站
  • wordpress公众号同步宁波核心关键词seo收费
  • 企业备案网站可以做论坛吗百度的宣传视频广告
  • 昆明做网站游戏工作室加盟
  • 淄博网站制作公司推广企业建站业务还能做吗
  • 做多级分销的网站中国住房和城乡建设部网站