Bird
Raised Fist0
DSA C#programming~5 mins

Merge Two Sorted Linked Lists in DSA C# - 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 nodes 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
beginner
Show the C# code snippet to create a dummy node for merging two sorted linked lists.
ListNode dummy = new ListNode(0); ListNode current = dummy;
Click to reveal answer
intermediate
Why is a dummy node used in merging two sorted linked lists?
It simplifies the code by providing a fixed starting point for the merged list, avoiding special cases for the head node.
Click to reveal answer
What is the first step in merging two sorted linked lists?
AReverse both linked lists
BCreate a dummy node to start the merged list
CDelete nodes with duplicate values
DSort both linked lists again
When comparing nodes from two sorted linked lists, which node is added to the merged list?
AThe node with the larger value
BThe node from the second list only
CThe node with the smaller value
DThe node from the first list only
What do you do after one linked list is fully merged but the other still has nodes?
AAppend the remaining nodes to the merged list
BReverse the remaining nodes
CDiscard the remaining nodes
DSort the remaining nodes before appending
What is the time complexity of merging two sorted linked lists with lengths m and n?
AO(1)
BO(m * n)
CO(m^2 + n^2)
DO(m + n)
Which of these is NOT a benefit of using a dummy node in merging linked lists?
AIncreases memory usage significantly
BSimplifies code by avoiding head special case
CHelps to easily return the merged list head
DMakes appending nodes straightforward
Explain step-by-step how to merge two sorted linked lists into one sorted linked list.
Think about walking through both lists and building a new list in order.
You got /6 concepts.
    Describe why using a dummy node is helpful when merging two sorted linked lists.
    Consider how you would handle the first node without a dummy.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main goal when merging two sorted linked lists?
      easy
      A. Remove duplicates from both lists
      B. Create a new sorted linked list containing all elements from both lists
      C. Reverse both linked lists
      D. Sort each list individually without merging

      Solution

      1. Step 1: Understand the problem goal

        The goal is to combine two sorted linked lists into one sorted linked list.
      2. Step 2: Clarify the expected output

        The output should be a single linked list that maintains sorted order and contains all nodes from both input lists.
      3. Final Answer:

        Create a new sorted linked list containing all elements from both lists -> Option B
      4. Quick Check:

        Merge means combine sorted lists into one sorted list [OK]
      Hint: Merging means combining sorted lists into one sorted list [OK]
      Common Mistakes:
      • Thinking merge means reversing lists
      • Trying to sort lists separately without merging
      • Removing duplicates instead of merging
      2. Which of the following is the correct C# syntax to declare a node class for a singly linked list used in merging?
      easy
      A. class Node { int val; Node next; Node(int x) { val = x; next = null; } }
      B. public struct Node { int val; Node next; }
      C. public class Node { public int val; public Node next; public Node(int x) { val = x; next = null; } }
      D. public class Node { int val; int next; public Node(int x) { val = x; next = 0; } }

      Solution

      1. Step 1: Check class declaration and access modifiers

        public class Node { public int val; public Node next; public Node(int x) { val = x; next = null; } } correctly declares a public class with public fields and a constructor initializing values.
      2. Step 2: Verify field types and initialization

        public class Node { public int val; public Node next; public Node(int x) { val = x; next = null; } } uses 'int val' and 'Node next' with proper initialization; others miss public or use wrong types.
      3. Final Answer:

        public class Node { public int val; public Node next; public Node(int x) { val = x; next = null; } } -> Option C
      4. Quick Check:

        Correct class with public fields and constructor [OK]
      Hint: Node class needs public fields and constructor for linked list [OK]
      Common Mistakes:
      • Missing public keyword causing access errors
      • Using struct instead of class for linked list node
      • Incorrect type for next pointer
      3. What will be the output linked list after merging these two sorted lists?

      List1: 1 -> 3 -> 5 -> null
      List2: 2 -> 4 -> 6 -> null

      Assuming the merge function merges correctly.
      medium
      A. 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> null
      B. 1 -> 3 -> 5 -> 2 -> 4 -> 6 -> null
      C. 2 -> 4 -> 6 -> 1 -> 3 -> 5 -> null
      D. 1 -> 2 -> 4 -> 3 -> 5 -> 6 -> null

      Solution

      1. Step 1: Compare first nodes of both lists

        1 (List1) < 2 (List2), so 1 is first in merged list.
      2. Step 2: Continue comparing nodes in order

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

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

        Merge sorted lists by picking smaller node each step [OK]
      Hint: Pick smaller node from heads repeatedly to merge [OK]
      Common Mistakes:
      • Appending one list entirely before the other
      • Not maintaining sorted order
      • Mixing node order incorrectly
      4. Given the following code snippet for merging two sorted linked lists, what is the error?

      public Node Merge(Node l1, Node 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. No error; the code correctly merges two sorted linked lists
      B. Missing base case for empty lists
      C. Incorrect comparison operator used
      D. The function does not handle cycles in lists

      Solution

      1. Step 1: Analyze base cases

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

        Code compares values and recursively merges the rest, correctly linking nodes in sorted order.
      3. Final Answer:

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

        Recursive merge with base cases and correct comparisons [OK]
      Hint: Check base cases and recursive calls carefully [OK]
      Common Mistakes:
      • Forgetting to return merged list
      • Incorrect base case handling
      • Wrong comparison operator
      5. You have two sorted linked lists:
      List1: 1 -> 4 -> 5 -> null
      List2: 1 -> 3 -> 4 -> null

      After merging, what is the correct merged list?
      Also, explain why duplicates appear and how the merge handles them.
      hard
      A. 1 -> 1 -> 4 -> 3 -> 4 -> 5 -> null
      B. 1 -> 3 -> 4 -> 5 -> null
      C. 1 -> 4 -> 5 -> 3 -> 4 -> 1 -> null
      D. 1 -> 1 -> 3 -> 4 -> 4 -> 5 -> null

      Solution

      1. Step 1: Merge nodes in sorted order including duplicates

        Both lists have '1' and '4' values; merge keeps all nodes, so duplicates appear in order.
      2. Step 2: Explain duplicate handling

        Merge does not remove duplicates; it links nodes as they appear, preserving duplicates in sorted order.
      3. Final Answer:

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

        Duplicates kept; merge preserves all nodes sorted [OK]
      Hint: Merge keeps duplicates; just link nodes in sorted order [OK]
      Common Mistakes:
      • Removing duplicates mistakenly
      • Mixing node order
      • Appending lists without sorting
      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