3. Merge Two Sorted Lists
easyAsked at TripAdvisorMerge two sorted linked lists into one sorted linked list.
By Alex Chen, Founder, InterviewChamp.AI · Last verified
Problem
You are given the heads of two sorted linked lists list1 and list2. Merge the two lists into one sorted list by splicing together the nodes of the first two lists. Return the head of the merged linked list.
Constraints
0 <= length <= 50-100 <= Node.val <= 100Both lists are sorted in non-decreasing order
Examples
Example 1
list1 = [1,2,4], list2 = [1,3,4][1,1,2,3,4,4]Example 2
list1 = [], list2 = [0][0]Approaches
1. Collect and sort
Extract all values, sort, rebuild list.
- Time
- O((n+m) log(n+m))
- Space
- O(n+m)
const vals = [];
while (l1) { vals.push(l1.val); l1 = l1.next; }
while (l2) { vals.push(l2.val); l2 = l2.next; }
vals.sort((a,b)=>a-b);
// rebuild listTradeoff:
2. Two-pointer splice
Walk both lists, attach smaller node to tail. Reuses existing nodes.
- Time
- O(n+m)
- Space
- O(1)
function mergeTwoLists(l1, l2) {
const dummy = { next: null };
let tail = dummy;
while (l1 && l2) {
if (l1.val <= l2.val) { tail.next = l1; l1 = l1.next; }
else { tail.next = l2; l2 = l2.next; }
tail = tail.next;
}
tail.next = l1 || l2;
return dummy.next;
}Tradeoff:
TripAdvisor-specific tips
TripAdvisor uses this pattern when merging review feeds from multiple sources into a single sorted timeline.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Merge Two Sorted Lists and other TripAdvisor interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →