LeetCode OJ - Merge Sorted Array & Merge Two Sorted Lists
2014-07-18 17:41
363 查看
Merge Sorted Array
Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.
分析:归并基本操作
class Solution { public: void merge(int A[], int m, int B[], int n) { int i = m - 1, j = n - 1; int x = m + n - 1; while(i >= 0 && j >= 0) { if(A[i] > B[j]) { A[x--] = A[i--]; } else { A[x--] = B[j--]; } } while(i >= 0) { A[x--] = A[i--]; } while(j >= 0) { A[x--] = B[j--]; } } };
Merge Two Sorted Lists
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.
/**
* 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 dummy(0);
ListNode *head = &dummy;
while(l1 && l2) {
if(l1->val < l2->val) {
head->next = l1;
l1 = l1->next;
head = head->next;
} else {
head->next = l2;
l2 = l2->next;
head = head->next;
}
}
while(l1) {
head->next = l1;
l1 = l1->next;
head = head->next;
}
while(l2) {
head->next = l2;
l2 = l2->next;
head = head->next;
}
return dummy.next;
}
};
相关文章推荐
- Merge Sorted Array && Merge Two Sorted Lists
- Merge Two & k Sorted Lists & Merge Sorted Array
- [LeetCode]Merge Two Sorted Lists & Remove Duplicates from Sorted List 两个有序链表合并为一个&删除链表重复元素
- 【LeetCode OJ】Merge Two Sorted Lists
- [Leetcode][JAVA] Merge Two Sorted Lists & Sort List
- LeetCode OJ--Merge Two Sorted Lists
- LeenCode——归并问题的处理( Merge Two Sorted Lists&&Given two sorted integer arrays nums1 and nums2, merge n)
- 21 Merge Two Sorted Lists &&23. Merge k Sorted Lists
- LeetCode OJ:Merge Two Sorted Lists
- 【LeetCode OJ】Merge Two Sorted Lists
- Merge Sorted Array,Merge Two Sorted Lists,Remove ... Sorted List,Count and Say,Climbing Stairs
- LeetCode之“链表”:Merge Two Sorted Lists && Merge k Sorted Lists
- Remove Duplicates from Sorted List && Merge Two Sorted Lists && Linked List Cycle && Remove Nth Node
- Merge Two Sorted Lists & Remove Nth Node From End of List
- LeetCode OJ 之 Merge Two Sorted Lists(合并两个有序的链表)
- Convert Sorted Array to Binary Search Tree and Merge Two Sorted Lists
- 【LeetCode】Merge Two Sorted Lists 解题报告(Java & Python)
- LeetCode|Merge Two Sorted Lists/Merge Sorted Array
- 【LeetCode】Merge Two Sorted Lists & Merge k Sorted Lists
- LeetCode OJ——Merge Two Sorted Lists