Merge two sorted lists (in-place)
Given two sorted lists, merge them so as to produce a combined sorted list (without using extra space).
Examples:
Input : head1: 5->7->9
head2: 4->6->8
Output : 4->5->6->7->8->9
Input : head1: 1->3->5->7
head2: 2->4
Output : 1->2->3->4->5->7
Node *merge(Node *h1, Node *h2){ if (!h1) return h2; if (!h2) return h1; // start with the linked list // whose head data is the least if (h1->data < h2->data) { h1->next = merge(h1->next, h2); return h1; } else { h2->next = merge(h1, h2->next); return h2; }}
No comments:
Post a Comment