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

郑州巩义网站建设成都设计公司哪家好

郑州巩义网站建设,成都设计公司哪家好,定制家具网,wordpress内置分页方法🐨目录📑1. 题目🛶2. 解法- 头插到新链表🐬2.1 思路🐬2.1 代码实现⛵3. 解法优化 - 带哨兵位🐋3.1 思路🐋3.2 代码实现🚤4. 题目链接📑1. 题目 将两个升序链表合并为一个…

在这里插入图片描述

🐨目录

    • 📑1. 题目
    • 🛶2. 解法- 头插到新链表
      • 🐬2.1 思路
      • 🐬2.1 代码实现
    • ⛵3. 解法优化 - 带哨兵位
      • 🐋3.1 思路
      • 🐋3.2 代码实现
    • 🚤4. 题目链接

📑1. 题目

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例1:
在这里插入图片描述

输入: l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入: l1 = [], l2 = []
输出:[]

示例3:

输入: l1 = [], l2 = [0]
输出:[0]

提示:

  • 两个链表的节点数目范围是 [0, 50]
  • -100 <= Node.val <= 100
  • l1 和 l2 均按非递减顺序排列

🛶2. 解法- 头插到新链表

🐬2.1 思路

题目给我们的链表是升序的,最简单直接的思路就是将这两个链表尾插升序排列到一个新链表。

tips:

  1. 这里我们需要考虑到题目给的两个链表是否为空;
  2. 尾插时,也需判断我们的新链表是否为空;
  3. 最后需检查两个链表是否遍历完毕,如果未遍历完毕,则将剩余的元素直接尾插到新链表。

🐬2.1 代码实现

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){if(list1 == NULL)return list2;if(list2 == NULL)return list1;struct ListNode*newhead = NULL,*tail = NULL;while(list1&&list2){if(list1->val <list2->val){if(tail == NULL){newhead = tail =list1;}else{//尾插tail->next = list1;tail = tail->next;}list1 = list1->next;}else{if(tail == NULL){newhead = tail = list2;}else{//尾插tail->next = list2;tail = tail->next;}list2 = list2->next;}}if(list1&&tail){tail->next = list1;tail = tail->next;}if(list2&&tail){tail->next = list2;tail = tail->next;}return newhead;
}

⛵3. 解法优化 - 带哨兵位

🐋3.1 思路

刚才的解法,需要链表进行判断是否为空,那么如果放置一个带哨兵位的头节点guard,那我们就不需要进行判空了,直接往tail后面尾插就行了。

tips:

  1. 这里不能直接返回guard,而是要返回guard的下一个节点,因为guard并未存储任何有效数据,只负责在这里 “站哨”
  2. 因为这里的哨兵位是我们向内存申请的空间,使用完毕之后还需要进行释放。

🐋3.2 代码实现

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){struct ListNode*guard = NULL;struct ListNode*tail = NULL;//哨兵位guard = tail = (struct ListNode*)malloc(sizeof(struct ListNode));tail->next = NULL;while(list1 && list2){if(list1->val < list2->val){tail->next = list1;tail = tail->next;list1 = list1->next;}else{tail->next = list2;tail = tail->next;list2 = list2->next;   }}if(list1)tail->next = list1;if(list2)tail->next = list2;struct ListNode*head = guard->next;free(guard);return head;
}

🚤4. 题目链接

leetcode——21. 合并两个有序链表

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

相关文章:

  • 南京网站设计制作套餐手机论坛网站
  • 青岛建设银行网站首页wordpress禁用修正版
  • 做gif动图的网站犯法吗网站推广网络营销
  • 3g 手机网站苏州做网站哪家公司好
  • 唐河县住房和城乡建设局网站制作宣传册的步骤
  • 乐安网站建设平面设计作品图片大全
  • 网站制作上哪学校静态网站制作视频
  • 金诚信矿业建设集团有限公司网站外网怎样访问自己做的网站
  • wordpress 百度分享按钮百度关键词优化服务
  • 滨州做网站建设的公司提高网站排名
  • 网建网站ueditor wordpress4.7
  • 工作作风建设网站网络营销与直播专业学什么
  • 淘宝客优惠卷网站模板苏州网站建设专家
  • 网页设计大作业网站优化排名易下拉用法
  • 网站的百度推广怎么做手机软件怎么制作
  • 深圳做外贸网站网站怎样秒收录
  • 小视频网站源码莱芜网站推广
  • 长沙做网站的公司自己做的美食分享到网站
  • 郑州锐旗网站公司网站制作有哪些种类
  • 中劳网做网站郑州官方网站建设首选华苏科技
  • 游戏网站怎么做银川网站开发
  • 温州做外贸网站设计导航 网站 分析
  • 备案号 网站辽宁建设工程信息网官网首页官方
  • 网站开发参考文献网站发布和收录怎么做
  • 平台网站建设在哪里wordpress开发文档(chm)
  • 青岛网站制作企业行业网站怎么建设
  • 专门做蛋糕视频的网站怎样推销网站建设
  • 搭建一个网站需要多少钱深圳宝安网站推广
  • 广东做网站公司有哪些wordpress版本更新
  • 可以做外贸的网站wordpress删除边栏