[Leetcode] Merge two sorted lists 合并两已排序的链表
2017-06-14 09:18
597 查看
Merge two sorted linked lists and return it as a new list.
The new list should be made by splicing together the nodes of the first two lists.
题意:合并两个排好的链表并返回新的链表。
可以使用归并排序,从两链表的表头,取出结点,比较两值,将较小的放在新链表中。如1->3->5->6和2->4->7->8,先将1放入新链表,然后将3和2比较,较小值放入新链表中,从1到3只要pre=pre->next即可。当其中有一条链表被访问完,结束循环,找出该链表,将其接在新链表的后面即可。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode *newList=new ListNode(-1); ListNode *pre=newList; while(l1&&l2) { if(l1->val > l2->val) { pre->next=l2; l2=l2->next; } else { pre->next=l1; l1=l1->next; } pre=pre->next; } if(l1) pre->next=l1; else pre->next=l2; return newList->next; } };
相关文章推荐
- LeetCode-21- Merge Two Sorted Lists(合并两个已排序链表)
- leetCode 21.Merge Two Sorted Lists (合并排序链表) 解题思路和方法
- Leetcode 21 Merge Two Sorted Lists 将两个已排序的链表合并起来
- LeetCode 21 Merge Two Sorted Lists(合并两个已排序的链表)(Linked List)
- Leetcode 21:Merge Two Sorted Lists(golang实现合并两条已经排序的链表)
- LeetCodet题解--21. Merge Two Sorted Lists(合并两个排序好的链表)
- leetcode 21. Merge Two Sorted Lists(C语言,合并两个排序的链表为一个排序链表)32
- LeetCode-21 Merge Two Sorted Lists(合并两个有序链表)
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- lintcode 容易题 :Merge Two Sorted Lists合并两个排序链表
- leetCode 23. Merge k Sorted Lists (合并k个排序链表) 解题思路和方法
- leetcode_[python/C++]_21. Merge Two Sorted Lists(合并有序链表)
- Leetcode 23. Merge k Sorted Lists合并k个排序链表
- [C++]LeetCode 21: Merge Two Sorted Lists(合并链表)
- LeetCodet题解--23. Merge k Sorted Lists(合并K个已排序的链表)
- leetCode 21. Merge Two Sorted Lists 合并链表
- [LeetCode]Sort List 链表排序 + Merge Two Sorted List 合并两个有序链表
- 面试题17:合并两个有序链表(Leetcode-21:Merge Two Sorted Lists)
- 【LeetCode-面试算法经典-Java实现】【021-Merge Two Sorted Lists(合并两个排好序的单链表)】