合并两个排序的链表
来源:互联网 发布:python 高斯函数 编辑:程序博客网 时间:2024/06/11 21:00
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
例如
{1,2,3} {4,5,6}
输出
{1,2,3,4,5,6}
代码:(JAVA迭代版)
class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { ListNode root = null; ListNode temp = null; //使用temp的原因是我们返回值要返回第一个节点 //但是我们merge生成ListNode节点的时候要移动(next)节点好去链接新节点 //所以使用temp去移动next,而返回第一个root节点 /* 如果有一个链表为空,直接返回另外一个链表 */ if(list1==null) return list2; if(list2==null) return list1; /* 开始遍历两条链表,比较大小,插入新链表 直到遍历到一条链表的尾部 */ while(list1!=null&&list2!=null){ if(list1.val>list2.val){ //第一次比较生成根节点 if(root==null) temp = root = new ListNode(list2.val); //生成较小的值,都采用了连等于的模式,从右往左 else temp = temp.next = new ListNode(list2.val); list2 = list2.next; }else{ //同上 if(root==null) temp = root = new ListNode(list1.val); else temp = temp.next = new ListNode(list1.val); list1 = list1.next; } } //下面的两种情况是把未遍历完链表的剩余部分都加入到返回值链表中 if(list1!=null){ temp.next = list1; } if(list2!=null){ temp.next = list2; } return root; }}
0 0
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- java入门3-运算符
- 文章标题
- JAXB入门教程
- 线性表的基础知识
- 线程编程练习
- 合并两个排序的链表
- Python基础学习之基本数据结构Dict
- datastage实现数据增量抽取方案
- scanf输入密码
- markdown 编辑器的使用 CSDN
- JavaScript高级程序设计读书笔记(持续更新)
- datetimepicker常用方法
- 掌握VS2010调试 -- 入门指南
- zurmo(2)-自定义模块(2)-易忘点