题目描述

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

思路1:

分别用p1,p2两个指针扫描两个有序链表,p3指针去构建新链表h3.

p1.val <= p2.val,则p3把p1指向的结点加入h3,p1后移动。反之,对p2进行对应操作。

代码:(未验证正确性,提交时显示超时,所以不知道功能是否实现,还是仅仅时间复杂度高?)

public ListNode Merge(ListNode list1,ListNode list2) {

        if(list1 == null){
return list2;
}
if(list2 == null){
return list1;
} ListNode p1 = list1;
ListNode p2 = list2; ListNode list3;
if(list1.val <= list2.val){
list3 = list1;
}else{
list3 = list2;
}
ListNode p3 = list3; while(p1 != null && p2 != null){ if(p1.val <= p2.val){
p3.next = p1;
p1 = p1.next; }else{
p3.next = p2;
p2 = p2.next;
} p3 = p3.next;
} if(p1 == null){
p3.next = p2;
} if(p2 == null){
p3.next = p1;
} return list3;
}

思路2:

采用递归的思想

代码:

public ListNode Merge(ListNode list1,ListNode list2) {

        if(list1 == null){
return list2;
}
if(list2 == null){
return list1;
} ListNode list3;
if(list1.val <= list2.val){
list3 = list1;
list3.next = Merge(list1.next, list2);
}else{
list3 = list2;
list3.next = Merge(list1, list2.next);
} return list3;
}

剑指Offer:面试题17——合并两个排序的链表的更多相关文章

  1. 剑指Offer - 九度1519 - 合并两个排序的链表

    剑指Offer - 九度1519 - 合并两个排序的链表2013-11-30 22:04 题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.(hi ...

  2. 剑指offer十六之合并两个排序的链表

    一.题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 二.思路 注:链表1和链表2是两个递增排序的链表,合并这两个链表得到升序链表为链表3. 首先分析 ...

  3. 【剑指Offer】16、合并两个排序的链表

      题目描述:   输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.   解题思路:   首先需要判断几个特殊情况,即判断输入的两个指针是否为空.如果第一个 ...

  4. 剑指offer(16)合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 题目分析 重点抓住这两个链表都是单挑递增的,因此我们只需要不断地比较他们的头结点就行,明显这是个 ...

  5. 剑指offer-面试题17.合并两个排序的链表

    题目:输入两个递增的排序的链表,合并这两个链表并使新链表中的节点仍然是 按照递增排序的.例如链表1链表2合并为链表3. List1:->->-> List2:->->-& ...

  6. 《剑指offer》面试题17 合并两个排序的链表 Java版

    我的方法:新初始化一个链表头,比较两个链表当前节点的大小,然后连接到该链表中.遍历两个链表直到null为止. public ListNode merge(ListNode first, ListNod ...

  7. 【剑指offer】面试题 25. 合并两个排序的链表

    面试题 25. 合并两个排序的链表 NowCoder 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. Java 实现 ListNode Clas ...

  8. 【剑指Offer面试题】 九度OJ1518:反转链表

    与其非常快写出一段漏洞百出的代码,倒不如细致分析再写出鲁棒的代码. 提前想好測试用例(输入非空等等)进行測试改动代码. 题目链接地址: http://ac.jobdu.com/problem.php? ...

  9. 剑指offer面试题17:合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点人是按照递增排序的.解题思路:两个链表分别都已经是有序的了,遍历链表的时候只要比较两个链表当前位置大小,取出最小的添加到新链表中. 可以有 ...

随机推荐

  1. 【jmeter】JMeter中返回Json数据的处理方法

    Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...

  2. Python try/except异常处理机制

    1. use try, except, finally try: data=open('its.txt','w') print('its..', file=data) except: print('f ...

  3. android学习笔记23——菜单

    菜单在桌面应用程序中使用非常广泛,由于手机屏幕的制约,菜单在手机应用中减少不少. android应用中的菜单默认是不可见的,只有当用户单击手机上“Menu”键时,系统才会显示该应用关联的采用项. an ...

  4. 静态库不要strip 太厉害

    根据strip的功能表示,strip经常用来去除目标文件中的一些符号表.调试符号表信息,减少包的大小.我自己做了一函数库,同样的代码生成了一个mylib.so和一个mylib.a文件,之后使用了 st ...

  5. jQuery formValidator手册

    什么是jQuery formValidator? jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人 ...

  6. pthread_key_t和pthread_key_create()详解

    pthread_key_t和pthread_key_create()详解 下面说一下线程中特有的线程存储, Thread Specific Data .线程存储有什么用了?他是什么意思了?大家都知道, ...

  7. shell中大小写转换

    有两种方式: 1.用tr 例如:UPPERCASE=$(echo $VARIABLE | tr '[a-z]' '[A-Z]')   (把VARIABLE的小写转换成大写) LOWERCASE=$(e ...

  8. PLSQL_基础系列06_判断操作NVL / NULLIF / COALESCE / NVL2(案例)

    2014-12-08 Created By BaoXinjian

  9. pyhton读取json格式的气象数据

    原文关于读取pm25.in气象数据的pyhton方法,以及浅析python json的应用 以pm25.in网站数据为例. 1.方法介绍 首先感谢pm25.in提供了优质的空气污染数据,为他们的辛勤劳 ...

  10. phpmyadmin数据库导入出错

    SQL 查询: -- phpMyAdmin SQL Dump-- version 3.5.1-- http://www.phpmyadmin.net---- 主机: localhost-- 生成日期: ...