leecode第二十一题(合并两个有序链表)
/*** 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第二十一题(合并两个有序链表)相关推荐
- 《LeetCode力扣练习》第21题 合并两个有序链表 Java
<LeetCode力扣练习>第21题 合并两个有序链表 Java 一.资源 题目: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 ...
- LeetCode题组:第21题-合并两个有序链表
1.题目:合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出: ...
- 两个有序链表序列的交集_腾讯50题---合并两个有序链表(简单)
5.1 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1-&g ...
- [剑指offer]面试题第[25]题[Leedcode][JAVA][第21题][合并两个有序链表]
[问题描述][简单] 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1->3->4 输出:1-&g ...
- leetcode算法题--合并两个有序链表
原题链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/ ListNode* mergeTwoLists(ListNode* l1, ...
- 合并两个有序链表 C语言 leetcode21题
目录 1.题目来源 2.函数介绍 3.问题示例 4.函数实现 代码 1.题目来源 21. 合并两个有序链表 - 力扣(LeetCode)https://leetcode.cn/problems/mer ...
- 合并两个有序链表 图解说明
合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 ...
- LeetCode 21合并两个有序链表22括号生成
微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- 两个有序链表序列的交集_LeetCode | 21.合并两个有序链表
点击上方蓝字关注我们 1.LeetCode | 2.两数相加 2.LeetCode | 206.反转链表 3.LeetCode | 1.两数之和 4.LeetCode | 703.数据流中的第K大元素 ...
- 两个有序链表序列的交集_剑指offer第21天:合并两个有序链表
我准备了 1000 本电子书和计算机各领域高清思维导图 100 张,关注后回复[资源],即可获取!更可回复[内推]加入 BAT 内推群! 01.题目分析 第21题:合并两个有序链表 将两个有序链表合并 ...
最新文章
- 设计一款编程语言有多难?
- QIIME 2用户文档. 15样品分类和回归q2-sample-classifier(2019.7)
- 7. Vulnerability exploitation tools (漏洞利用工具 11个)
- 利用CSS实现文本省略效果
- Python3--批量爬取数据之调用有道api进行翻译
- 溢出键盘程序漏洞 得到管理员权限
- Win的cmd中文乱码
- MySQL高级 - SQL优化 - 索引提示
- 2021牛客多校6 - Defend Your Country(点双缩点求割点)
- python能开发游戏吗_python可以开发游戏吗,python能开发游戏吗
- 医药计算机人员试题及答案,医药计算机应用试题.doc
- mysql 触发器 for each row 理解_MySQL触发器中的“ FOR EACH ROW”如何工作?
- Eclipse Web开发出现莫名其妙错误
- Hadoop2.2伪分布式搭建步骤
- 洛谷P4121 [WC2005]双面棋盘(线段树套并查集)
- 解决办法:GLib-ERROR **: Creating pipes for GWakeup: Too many open files
- 统计学原理 实验方法
- NEWSCTF第二届--官方wp(2021.6.1萌新赛)
- android usb调试授权,USB调试模式已打开,但没有USB调试授权窗口
- 计算机漏洞安全相关的概念POC | EXP | VUL | CVE | 0DAY
热门文章
- 简单粗暴的入门机器学习
- 【机器视觉】 dev_unmap_prog算子
- 【机器视觉】 dev_update_pc算子
- 【Linux】一步一步学Linux——gunzip命令(64)
- 【C++】 C++虚函数表详细分析(上)
- 母版页 中 html 乱码,Thymeleaf使用技巧:使用片段(fragment)实现母版页(Layout)功能...
- 小程序 wx.getBackgroundAudioManager() 手机黑屏后,让控制音频停止
- Redis源码剖析(十一)跳表
- 每天一道LeetCode-----实现二叉搜索树的迭代器
- 每天一道LeetCode-----将数组/链表后k个元素移动到前面