/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {if(l1==NULL)//判断有一组为空的情况return l2;if(l2==NULL)return l1;if(l1->val>l2->val)//由于我设计的算法问题,需要明确知道第一个值谁小,不妨用l1小,若不满足,就倒一下return mergeTwoLists(l2,l1);ListNode* res=l1;//保存头指针,留待返回while(l2!=NULL){while(l1->next!=NULL && l1->next->val<=l2->val)//直到找出l1下一个比当前l2值大的数,且不能为空l1=l1->next;if(l1->next==NULL)//只要额外判断l1下个为空的情况,这个值肯定不会比l2大
            {l1->next=l2;break;}ListNode* l2_next=l2->next;//一定要记住当前l2的下个节点l2->next=l1->next;//这里一定要画图,特清晰,不画要崩溃l1->next=l2;//注意这里l1指针停在新加入的节点处l1=l1->next;l2=l2_next;//即便l2为空也不要紧啊
        }return res;}
};

分析:

这次做的挺好的,只有一处错误,就是忘了设置l1的第一个值一定小于l2的第一个值。其他没有任何错误,做的如此顺利的原因在于我通过画图举例,尽可能把所有案例都想到了,然后对比图示写的(链表不画图纯靠脑子我会懵),好吧其实还是这个题简单。

这个题给我做题的经验,就是先画图,举例,实现一般功能的案例,然后是边界,然后看算法行不,不行怎么办,最后总结好了再写,不然边写边想会写不好也想不对,万一要换算法就更麻烦了。

转载于:https://www.cnblogs.com/CJT-blog/p/10584455.html

leecode第二十一题(合并两个有序链表)相关推荐

  1. 《LeetCode力扣练习》第21题 合并两个有序链表 Java

    <LeetCode力扣练习>第21题 合并两个有序链表 Java 一.资源 题目: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 ...

  2. LeetCode题组:第21题-合并两个有序链表

    1.题目:合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出: ...

  3. 两个有序链表序列的交集_腾讯50题---合并两个有序链表(简单)

    5.1 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1-&g ...

  4. [剑指offer]面试题第[25]题[Leedcode][JAVA][第21题][合并两个有序链表]

    [问题描述][简单] 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1->3->4 输出:1-&g ...

  5. leetcode算法题--合并两个有序链表

    原题链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/ ListNode* mergeTwoLists(ListNode* l1, ...

  6. 合并两个有序链表 C语言 leetcode21题

    目录 1.题目来源 2.函数介绍 3.问题示例 4.函数实现 代码 1.题目来源 21. 合并两个有序链表 - 力扣(LeetCode)https://leetcode.cn/problems/mer ...

  7. 合并两个有序链表 图解说明

    合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的.  示例: 输入:1->2->4, 1->3->4 ...

  8. LeetCode 21合并两个有序链表22括号生成

    微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...

  9. 两个有序链表序列的交集_LeetCode | 21.合并两个有序链表

    点击上方蓝字关注我们 1.LeetCode | 2.两数相加 2.LeetCode | 206.反转链表 3.LeetCode | 1.两数之和 4.LeetCode | 703.数据流中的第K大元素 ...

  10. 两个有序链表序列的交集_剑指offer第21天:合并两个有序链表

    我准备了 1000 本电子书和计算机各领域高清思维导图 100 张,关注后回复[资源],即可获取!更可回复[内推]加入 BAT 内推群! 01.题目分析 第21题:合并两个有序链表 将两个有序链表合并 ...

最新文章

  1. 设计一款编程语言有多难?
  2. QIIME 2用户文档. 15样品分类和回归q2-sample-classifier(2019.7)
  3. 7. Vulnerability exploitation tools (漏洞利用工具 11个)
  4. 利用CSS实现文本省略效果
  5. Python3--批量爬取数据之调用有道api进行翻译
  6. 溢出键盘程序漏洞 得到管理员权限
  7. Win的cmd中文乱码
  8. MySQL高级 - SQL优化 - 索引提示
  9. 2021牛客多校6 - Defend Your Country(点双缩点求割点)
  10. python能开发游戏吗_python可以开发游戏吗,python能开发游戏吗
  11. 医药计算机人员试题及答案,医药计算机应用试题.doc
  12. mysql 触发器 for each row 理解_MySQL触发器中的“ FOR EACH ROW”如何工作?
  13. Eclipse Web开发出现莫名其妙错误
  14. Hadoop2.2伪分布式搭建步骤
  15. 洛谷P4121 [WC2005]双面棋盘(线段树套并查集)
  16. 解决办法:GLib-ERROR **: Creating pipes for GWakeup: Too many open files
  17. 统计学原理 实验方法
  18. NEWSCTF第二届--官方wp(2021.6.1萌新赛)
  19. android usb调试授权,USB调试模式已打开,但没有USB调试授权窗口
  20. 计算机漏洞安全相关的概念POC | EXP | VUL | CVE | 0DAY

热门文章

  1. 简单粗暴的入门机器学习
  2. 【机器视觉】 dev_unmap_prog算子
  3. 【机器视觉】 dev_update_pc算子
  4. 【Linux】一步一步学Linux——gunzip命令(64)
  5. 【C++】 C++虚函数表详细分析(上)
  6. 母版页 中 html 乱码,Thymeleaf使用技巧:使用片段(fragment)实现母版页(Layout)功能...
  7. 小程序 wx.getBackgroundAudioManager() 手机黑屏后,让控制音频停止
  8. Redis源码剖析(十一)跳表
  9. 每天一道LeetCode-----实现二叉搜索树的迭代器
  10. 每天一道LeetCode-----将数组/链表后k个元素移动到前面