NC33-合并两个有序的链表
描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入:
{1,3,5},{2,4,6}
返回值:
{1,2,3,4,5,6}
java代码(有头结点)
public class Solution {public ListNode Merge(ListNode list1,ListNode list2) {
//带头结点ListNode list=new ListNode(0);ListNode li=list;while(list1!=null&&list2!=null){if(list1.val>=list2.val){ListNode temp=new ListNode(list2.val);li.next=temp;li=temp;list2=list2.next;}else{ListNode temp=new ListNode(list1.val);li.next=temp;li=temp;list1=list1.next;}}
/*while(list1!=null){ListNode temp=new ListNode(list1.val);li.next=temp;li=temp;list1=list1.next;}
*///直接把未结束的列表list1连接到链表表尾if(list1!=null){li.next=list1;}
/*while(list2!=null){ListNode temp=new ListNode(list2.val);li.next=temp;li=temp;list2=list2.next;}
*///直接把未结束的列表list2连接到链表表尾if(list2!=null){ li.next=list2;}return list.next;}
}
java代码(无头节点)
public class Solution {public ListNode Merge(ListNode list1,ListNode list2) {if(list1==null)return list2;if(list2==null)return list1;//无头节点ListNode head=null;ListNode root=head;while(list1!=null&&list2!=null){if(list1.val<=list2.val){if(root==null){root=head=list1;}else{head.next=list1;head=head.next;}list1=list1.next;}else{if(root==null){root=head=list2;}else{head.next=list2;head=head.next;}list2=list2.next;}}if(list1!=null){head.next=list1;}if(list2!=null){head.next=list2;}return root;}
}
NC33-合并两个有序的链表相关推荐
- 链表题目---3 合并两个有序单链表 和 分割链表
合并两个有序单链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *nex ...
- 合并两个有序单链表,使得合并后的链表仍然有序
在<剑指offer>里有一道笔试面试题:合并两个有序单链表,使得合并后的链表仍然有序.书中巧妙的利用了递归方法实现了该函数功能. 显然,利用递归算法能够让代码看起来非常简洁且容易看懂,但如 ...
- 经典算法——合并两个有序单向链表
1.题目要求 这是一道求职面试时经常要求手写或者机试的经典题目. 已知两个链表 head1 和 head2 各自有序,请把它们合并成一个链表依然有序.结果链表要包含 head1 和head2 的所有节 ...
- 剑指offer:合并两个有序的链表
文章目录 分析 题目来源 分析 归并排序的思想:使用两个指针,分别指向两个链表,依次遍历两个链表,每次选择其中最小的插入到新链表中. 注意:这里新建一个虚拟节点dummy,第一个结点插入到dummy后 ...
- C++头插法尾插法建立单链表,合并两个有序单链表
A和B是两个单链表(带表头结点),其中元素递增有序.设计一个算法,将A和B归 并成一个按元素值非递减有序的链表 C,C由A 和B 中的结点组成. #include<iostream> #i ...
- [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现
合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...
- 【每日一算法】 合并两个有序链表
微信改版,加星标不迷路! 每日一算法-合并两个有序链表 作者:阿广 阅读目录 1 题目 2 解析 1 题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. ...
- 链表问题19——合并两个有序的单链表
题目 给定两个有序单链表的头节点head1和head2,请合并两个有序链表,合并后的链表依然有序,并返回合并后链表的头节点. 思路 本题较为简单,假设两个链表的长度分别为M和N,直接给出时间复杂度为O ...
- 【Java】leetCode 21 合并两个有序链表
题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...
- 合并两个有序链表分析
合并两个有序链表: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: l1 l2 输入:1->2->4, 1->3->4 ...
最新文章
- Linux那些事儿之我是Sysfs(8)一起散散步-pathwalk
- Linux软件安装-----apache安装
- dataloader 源码_带你从零掌握迭代器及构建最简DataLoader
- 物联网的全球可用性如何带来新的商机?
- 关于使用layui中的tree的一个坑
- [转]C++的坑真的多吗?
- synchronized锁
- POJ1979(DFS)
- Linux 高性能集群搭建(1)---ssh节点通信
- nginx负载均衡核心模块(upstream和proxy模块)及常用参数介绍
- centos下修改mysql默认端口
- 【THUSC 2018】菜鸡互啄记
- 服务器遇到DDOS攻击怎么办?
- springboot点餐微信小程序系统毕业设计源码221144
- Jsbeautifier JS代码美化库
- 爬虫初上手之爬取QQ音乐!
- Android本地视频播放器mediaplay版
- interview for chinaPay
- 暑假阅读的正确打开方式原来这么简单!
- 【工具推荐】Adobe Reader看PDF文件点击链接跳转,返回原位置方法
热门文章
- boost::mpl模块实现insert_range相关的测试程序
- boost::hana::is_an用法的测试程序
- boost::foreach模块右值 const_r的测试程序
- Boost:bind绑定的unique_ptr测试程序
- Boost:测试bind <void>
- ITK:KMeans聚类
- VTK:IO之GLTFImporter
- OpenCV Lucas-Kanade光流的实例(附完整代码)
- OpenGL定向光的投影阴影
- C++tim Sort提姆排序的实现算法(附完整源码)