Bird
Raised Fist0
DSA Javaprogramming~5 mins

Merge Two Sorted Linked Lists in DSA Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main goal when merging two sorted linked lists?
To create a new sorted linked list that contains all elements from both lists in ascending order.
Click to reveal answer
beginner
In merging two sorted linked lists, why do we compare the current nodes of both lists?
To decide which node has the smaller value and should be added next to the merged list, maintaining sorted order.
Click to reveal answer
intermediate
What happens when one linked list is fully traversed before the other during merging?
The remaining nodes of the other list are appended directly to the merged list because they are already sorted.
Click to reveal answer
intermediate
Why is a dummy node often used in the merge two sorted linked lists algorithm?
A dummy node simplifies the code by providing a starting point for the merged list, avoiding special cases for the head node.
Click to reveal answer
beginner
What is the time complexity of merging two sorted linked lists with lengths m and n?
O(m + n) because each node from both lists is visited exactly once.
Click to reveal answer
What is the first step in merging two sorted linked lists?
ACompare the first nodes of both lists
BCreate a new empty list
CReverse both lists
DDelete duplicates
What do you do when the current node of list1 is smaller than the current node of list2?
AAdd list2's node to merged list
BAdd list1's node to merged list
CSkip both nodes
DStop merging
If list1 is empty but list2 still has nodes, what should you do?
AReverse list2
BDiscard list2's nodes
CStart over
DAppend list2's remaining nodes to merged list
Why is a dummy node helpful in merging two sorted linked lists?
AIt stores the largest value
BIt deletes duplicates
CIt helps avoid special cases for the head node
DIt reverses the list
What is the overall time complexity of merging two sorted linked lists?
AO(m + n)
BO(m * n)
CO(m^2)
DO(log(m + n))
Explain step-by-step how to merge two sorted linked lists into one sorted linked list.
Think about walking through both lists together and picking the smaller values.
You got /5 concepts.
    Describe why using a dummy node simplifies the merging process of two sorted linked lists.
    Imagine building a list without worrying about the first node.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main goal when merging two sorted linked lists?
      easy
      A. To create a new sorted linked list containing all elements from both lists
      B. To reverse both linked lists
      C. To find the maximum element in both lists
      D. To delete duplicate elements from both lists

      Solution

      1. Step 1: Understand the input lists

        Two linked lists are sorted individually, meaning their elements are in ascending order.
      2. Step 2: Merge while maintaining order

        The goal is to combine these two lists into one sorted list that contains all elements from both.
      3. Final Answer:

        To create a new sorted linked list containing all elements from both lists -> Option A
      4. Quick Check:

        Merging sorted lists means combining all elements in order [OK]
      Hint: Merging means combining sorted lists into one sorted list [OK]
      Common Mistakes:
      • Thinking merge means reversing lists
      • Assuming merge removes duplicates
      • Confusing merge with finding max element
      2. Which of the following Java method signatures correctly represents a function to merge two sorted linked lists of integers?
      easy
      A. public int merge(ListNode l1, ListNode l2)
      B. public void merge(int l1, int l2)
      C. public ListNode merge(ListNode l1, ListNode l2)
      D. public ListNode merge(int[] l1, int[] l2)

      Solution

      1. Step 1: Identify correct parameter types

        The function should accept two linked lists, so parameters must be ListNode types, not primitives or arrays.
      2. Step 2: Identify correct return type

        The function returns a merged linked list, so return type should be ListNode, not void or int.
      3. Final Answer:

        public ListNode merge(ListNode l1, ListNode l2) -> Option C
      4. Quick Check:

        Method with ListNode params and return type is correct [OK]
      Hint: Method merges two ListNode inputs and returns ListNode [OK]
      Common Mistakes:
      • Using primitive types instead of ListNode
      • Returning void instead of ListNode
      • Using arrays instead of linked lists
      3. What is the output linked list after merging these two sorted lists?
      List 1: 1 -> 3 -> 5 -> null
      List 2: 2 -> 4 -> 6 -> null
      medium
      A. 2 -> 4 -> 6 -> 1 -> 3 -> 5 -> null
      B. 1 -> 3 -> 5 -> 2 -> 4 -> 6 -> null
      C. 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> null
      D. 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> null

      Solution

      1. Step 1: Compare first nodes of both lists

        1 (List 1) is less than 2 (List 2), so 1 is first in merged list.
      2. Step 2: Continue comparing next nodes

        Next compare 3 and 2, 2 is smaller, add 2, then 3 vs 4, add 3, then 5 vs 4, add 4, then 5 vs 6, add 5, finally add 6.
      3. Final Answer:

        1 -> 2 -> 3 -> 4 -> 5 -> 6 -> null -> Option D
      4. Quick Check:

        Merge keeps ascending order combining both lists [OK]
      Hint: Pick smaller head node repeatedly to merge sorted lists [OK]
      Common Mistakes:
      • Appending one list after the other without sorting
      • Reversing order of merged list
      • Skipping nodes during merge
      4. Given the following code snippet to merge two sorted linked lists, what is the error?
      public ListNode merge(ListNode l1, ListNode l2) {
          if (l1 == null) return l2;
          if (l2 == null) return l1;
          if (l1.val < l2.val) {
              l1.next = merge(l1.next, l2);
              return l1;
          } else {
              l2.next = merge(l1, l2.next);
              return l2;
          }
      }
      medium
      A. Missing base case for both lists being null
      B. No error; code correctly merges two sorted linked lists
      C. Incorrect comparison operator; should be <= instead of <
      D. Function does not handle empty lists properly

      Solution

      1. Step 1: Check base cases

        Code returns the other list if one is null, correctly handling empty lists.
      2. Step 2: Check recursive merge logic

        Compares values, recursively merges next nodes, and returns the smaller node, which is correct.
      3. Final Answer:

        No error; code correctly merges two sorted linked lists -> Option B
      4. Quick Check:

        Recursive merge with base cases is correct [OK]
      Hint: Check base cases and recursive calls carefully [OK]
      Common Mistakes:
      • Forgetting to return merged list
      • Incorrect base case handling
      • Wrong comparison operator causing order issues
      5. You have two sorted linked lists:
      List 1: 1 -> 4 -> 5 -> null
      List 2: 1 -> 3 -> 4 -> null
      After merging, what is the correct merged list?
      Also, explain why the merged list contains duplicate values.
      hard
      A. 1 -> 1 -> 3 -> 4 -> 4 -> 5 -> null
      B. 1 -> 3 -> 4 -> 5 -> null
      C. 1 -> 4 -> 5 -> 3 -> null
      D. 1 -> 1 -> 4 -> 5 -> null

      Solution

      1. Step 1: Merge nodes in ascending order

        Compare heads: both 1, add both 1s. Then 4 vs 3, add 3. Then 4 vs 4, add both 4s. Finally add 5.
      2. Step 2: Understand duplicates in merged list

        Duplicates appear because both lists contain the same values independently; merge keeps all elements without removing duplicates.
      3. Final Answer:

        1 -> 1 -> 3 -> 4 -> 4 -> 5 -> null -> Option A
      4. Quick Check:

        Merge keeps all elements including duplicates [OK]
      Hint: Merge keeps duplicates if present in input lists [OK]
      Common Mistakes:
      • Removing duplicates during merge
      • Appending lists without sorting
      • Skipping nodes with same values
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard