剑指offer:合并两个排序的链表(java)
来源:互联网 发布:java变量初始化顺序 编辑:程序博客网 时间:2024/05/16 01:46
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中的链表1和链表2,则合并之后的升序链表3所示。
(a)如果链表1头结点的值小于链表2头结点的值,那么链表1的头结点将是合并后链表的头结点。如果链表2头结点的值小于链表1的头结点的值,那么链表2的头结点将是合并后链表的头结点.
(b)我们继续合并两个链表中剩余的结点,由于两个链表剩余结点依然是排序的,因此合并这两个链表的步骤和前面的步骤是一样的,但需要把两个链表中的较小值的头结点链接到合并后链表的尾结点的后面。
接下来我们来解决鲁棒性的问题。1)如果第一个链表为空,那么合并的结果是第二个链表;2)如果第二个链表为空,那么合并的结果是第一个链表;3)如果两个链表都是空链表,合并的结果是一个空链表。
public ListNode Merge(ListNode pHead1,ListNode pHead2){ if(pHead1 == null) return pHead2; else if(pHead2 == null) return pHead1; ListNode pMergedHead = null; if(pHead1.data <pHead2.data){ pMergedHead = pHead1; pMergedHead.next = Merge(pHead1.next ,pHead2); }else{ pMergedHead = pHead2; pMergedHead.next = Merge(pHead1,pHead2.next); } return pMergedHead; }
0 1
- 剑指offer:合并两个排序的链表(java)
- 剑指offer题解【合并两个排序的链表】-java
- 剑指offer(18):合并两个排序的链表
- 剑指offer(13)-合并两个排序的链表
- 剑指offer(十六)合并两个排序的链表
- 剑指Offer面试题17(Java版):合并两个排序的链表
- JAVA实现合并两个排序的链表(《剑指offer》)
- 剑指Offer面试题17(Java版):合并两个排序的链表
- JAVA实现合并两个排序的链表(《剑指offer》)
- 【剑指offer-Java版】17合并两个排序链表
- 剑指offer 17-合并两个排序表的链表
- 剑指Offer之合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 【剑指offer】Q17:合并两个排序的链表
- 剑指offer-17:合并两个排序的链表
- 剑指offer系列源码-合并两个排序的链表
- 剑指offer--合并两个排序的链表
- java常量池概念
- mvc之composer加载和model数据类
- Eclipse 自动填充设置
- android进度条seekbar自定义样式
- php执行命令函数
- 剑指offer:合并两个排序的链表(java)
- 26. Remove Duplicates from Sorted Array
- 1、npm入门(一)
- nginx初级优化篇
- 可以改变EIP值的指令
- orcad 导出器件表格的方法
- 【转】vi/vim 删除:一行, 一个字符, 单词, 每行第一个字符 命令
- openstack-swift调试
- 初学SpringMVC