leetcode - 21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解法一:递归算法
/*** 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->next = mergeTwoLists(l1->next,l2); # 递归的作用是假定l1->next和l2之间的大小关系已经排序好return l1;}else{l2->next = mergeTwoLists(l1,l2->next);return l2;}}
};
解法二:迭代法
/*** 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) {ListNode* l = new ListNode(-1); # 设定一个哨兵节点ListNode* ll = l; # 设定一个指针while(l1!=NULL && l2!=NULL) # 循环迭代条件{if(l1->val<=l2->val) # 如果当前l1的值小于l2的值{ll->next = l1; # 对l1链表进行操作l1 = l1->next; }else{ll->next = l2; # 否则对l2链表进行操作l2 = l2->next;}ll = ll->next;}if(l1==NULL) # 因为跳出循环的条件有两个,需要判断哪个链表有剩余需要拼接到创建的链表中ll->next = l2;elsell->next = l1;return l->next;}
};
leetcode - 21. 合并两个有序链表相关推荐
- [递归|迭代] leetcode 21 合并两个有序链表
[递归|迭代] leetcode 21 合并两个有序链表 1.题目 题目链接 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2 ...
- LeetCode 21. 合并两个有序链表(链表)
上一篇博客:LeetCode 20. 有效的括号(栈.字符串) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...
- Java实现 LeetCode 21 合并两个有序链表
21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...
- LeetCode 21合并两个有序链表22括号生成
微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- 【Java】leetCode 21 合并两个有序链表
题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...
- LeetCode 21. 合并两个有序链表(单链表)
文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...
- leetcode 21.合并两个有序链表
题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-> ...
- LeetCode 21 ——合并两个有序链表
1. 题目 2. 解答 新建一个带有哨兵结点的链表,依次比较两个有序链表的结点值,将较小值的结点插入到新链表后面.直到其中一个比较完毕,将另一个链表剩余的结点全部放到新链表最后面即可.最后,可以删除哨 ...
- 81. Leetcode 21. 合并两个有序链表 (排序)
将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 1:输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] ...
最新文章
- js——页面回到顶部
- OpenCASCADE:构建线程
- 普通平键的主要尺寸有_艾创米:解密指纹锁锁体尺寸测量方法
- 软 件 学 院 实践环节报告
- 量子计算机到底多强大?从量子运算看清楚它们的能力
- redis实现轮询算法_【07期】Redis中是如何实现分布式锁的?
- PHP分页类的实现,返回结果未渲染,更容易在HTML中使用
- win10家庭版如何开启组策略
- 电脑报合订本_电脑报2018年合订本
- 开放源代码的软件测试工具
- jsp注册里密码强弱怎么弄_JavaScript注册时密码强度校验代码
- Linux-lsof
- 介绍3种JavaScript重定向到另一个网页的方法
- 不带任何脏字的英文骂人法
- 幼儿的健脑菜谱:椰子鸡汤
- wireshark抓包新手使用教程
- ps如何切html用的图片,前端实战(一)-----用ps把PSD切成HTML能用的图片
- Linux运维篇之进程管理②
- 海航生态科技舆情大数据平台容器化改造
- 不积跬步无以至千里—day2
热门文章
- DreamFactory入门指南 - 第2章安装和配置DreamFactory
- 容器编排技术 -- 基于Docker本地运行Kubernetes
- CSDN开发者周刊 TDengine:专为物联网订制的大数据平台 YugaByte DB:高性能的分布式ACID事务数据库
- Linux 查看网段内所有IP
- Docker快速搭建Tuleap项目管理平台
- python如何批量下载邮箱全部附件_Python编写执行测试用例及定时自动发送最新测试报告邮件...
- .net解决Xss攻击
- 【JAVA 第三章 流程控制语句】课后习题 随机整数最大值和最小值
- 修改oracle数据库内存参数,物理内存扩容,oracle 11g R1数据库相关参数修改
- hdf5 matlab,通过MATLAB将矩阵数据写入HDF5文件中的每个数据类型成员