描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

示例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-合并两个有序的链表相关推荐

  1. 链表题目---3 合并两个有序单链表 和 分割链表

    合并两个有序单链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *nex ...

  2. 合并两个有序单链表,使得合并后的链表仍然有序

    在<剑指offer>里有一道笔试面试题:合并两个有序单链表,使得合并后的链表仍然有序.书中巧妙的利用了递归方法实现了该函数功能. 显然,利用递归算法能够让代码看起来非常简洁且容易看懂,但如 ...

  3. 经典算法——合并两个有序单向链表

    1.题目要求 这是一道求职面试时经常要求手写或者机试的经典题目. 已知两个链表 head1 和 head2 各自有序,请把它们合并成一个链表依然有序.结果链表要包含 head1 和head2 的所有节 ...

  4. 剑指offer:合并两个有序的链表

    文章目录 分析 题目来源 分析 归并排序的思想:使用两个指针,分别指向两个链表,依次遍历两个链表,每次选择其中最小的插入到新链表中. 注意:这里新建一个虚拟节点dummy,第一个结点插入到dummy后 ...

  5. C++头插法尾插法建立单链表,合并两个有序单链表

    A和B是两个单链表(带表头结点),其中元素递增有序.设计一个算法,将A和B归 并成一个按元素值非递减有序的链表 C,C由A 和B 中的结点组成. #include<iostream> #i ...

  6. [PHP] 算法-合并两个有序链表为一个有序链表的PHP实现

    合并两个有序的链表为一个有序的链表: 类似归并排序中合并两个数组的部分 1.遍历链表1和链表2,比较链表1和2中的元素大小 2.如果链表1结点大于链表2的结点,该结点放入第三方链表 3.链表1往下走一 ...

  7. 【每日一算法】 合并两个有序链表

    微信改版,加星标不迷路! 每日一算法-合并两个有序链表 作者:阿广 阅读目录 1 题目 2 解析 1 题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. ...

  8. 链表问题19——合并两个有序的单链表

    题目 给定两个有序单链表的头节点head1和head2,请合并两个有序链表,合并后的链表依然有序,并返回合并后链表的头节点. 思路 本题较为简单,假设两个链表的长度分别为M和N,直接给出时间复杂度为O ...

  9. 【Java】leetCode 21 合并两个有序链表

    题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...

  10. 合并两个有序链表分析

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

最新文章

  1. Linux那些事儿之我是Sysfs(8)一起散散步-pathwalk
  2. Linux软件安装-----apache安装
  3. dataloader 源码_带你从零掌握迭代器及构建最简DataLoader
  4. 物联网的全球可用性如何带来新的商机?
  5. 关于使用layui中的tree的一个坑
  6. [转]C++的坑真的多吗?
  7. synchronized锁
  8. POJ1979(DFS)
  9. Linux 高性能集群搭建(1)---ssh节点通信
  10. nginx负载均衡核心模块(upstream和proxy模块)及常用参数介绍
  11. centos下修改mysql默认端口
  12. 【THUSC 2018】菜鸡互啄记
  13. 服务器遇到DDOS攻击怎么办?
  14. springboot点餐微信小程序系统毕业设计源码221144
  15. Jsbeautifier JS代码美化库
  16. 爬虫初上手之爬取QQ音乐!
  17. Android本地视频播放器mediaplay版
  18. interview for chinaPay
  19. 暑假阅读的正确打开方式原来这么简单!
  20. 【工具推荐】Adobe Reader看PDF文件点击链接跳转,返回原位置方法

热门文章

  1. boost::mpl模块实现insert_range相关的测试程序
  2. boost::hana::is_an用法的测试程序
  3. boost::foreach模块右值 const_r的测试程序
  4. Boost:bind绑定的unique_ptr测试程序
  5. Boost:测试bind <void>
  6. ITK:KMeans聚类
  7. VTK:IO之GLTFImporter
  8. OpenCV Lucas-Kanade光流的实例(附完整代码)
  9. OpenGL定向光的投影阴影
  10. C++tim Sort提姆排序的实现算法(附完整源码)