[LintCode] Merge Two Sorted Lists
2015-11-17 10:31
302 查看
Merge Two Sorted Lists
Merge two sorted (ascending) linked lists and return it as a new sorted list. The new sorted list should be made by splicing together the nodes of the two lists and sorted in ascending order.Example
Given
1->3->8->11->15->null,
2->null, return
1->2->3->8->11->15->null.
SOLUTION:
链表在merge的时候其实要有优势的,它不需要额外空间,不想array,要重新开一个空间放array。操作的时候也很简单,弄一个dummy,然后把小的直接连上就行了。此题属于基本操作,在其他题里完全可以作为function调用。
代码:
/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * this.next = null; * } * } */ public class Solution { /** * @param ListNode l1 is the head of the linked list * @param ListNode l2 is the head of the linked list * @return: ListNode head of linked list */ public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null){ return l2; } if (l2 == null){ return l1; } ListNode dummy = new ListNode(0); ListNode node = dummy; while (l1 != null && l2 != null){ if (l1.val < l2.val){ node.next = new ListNode(l1.val); l1 = l1.next; node = node.next; } else { node.next = new ListNode(l2.val); l2 = l2.next; node = node.next; } } while (l1 != null){ node.next = new ListNode(l1.val); l1 = l1.next; node = node.next; } while (l2 != null){ node.next = new ListNode(l2.val); l2 = l2.next; node = node.next; } return dummy.next; } }
View Code
相关文章推荐
- mysql 升级 5.7
- ……指定对象不在字典中报错解决
- 图像质量评价指标
- 简单实现Linux和windows的通讯
- 匹诺曹效应
- win10开机黑屏30秒后才能进入系统的解决办法
- MySQL5.7 在windows7下的编译
- ESP8266真会是Arduino Killer么?
- nodeJs学习
- SQL分页查询结果不一致
- 在iOS开发中如何实现数据持久化
- BSTR
- 深入理解BootStrap Item13 -- 缩略图(thumbnail)与警示窗(alert)
- web.xml详解
- Oracle SQL性能优化
- 【Leet Code】81. Search in Rotated Sorted Array II---Medium
- asterisk 队列策略
- 虚拟机win7 自动休眠
- jms--activemq知识点总结
- powerdesigner mysql odbc驱动