Bird
Raised Fist0
Data Structures Theoryknowledge~5 mins

Common linked list patterns (runner technique) in Data Structures Theory - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the runner technique in linked lists?
The runner technique uses two pointers moving at different speeds through a linked list to solve problems efficiently, like detecting cycles or finding the middle node.
Click to reveal answer
beginner
How does the runner technique help find the middle of a linked list?
One pointer moves one step at a time (slow), and the other moves two steps at a time (fast). When the fast pointer reaches the end, the slow pointer is at the middle.
Click to reveal answer
beginner
What problem can the runner technique detect in a linked list?
It can detect cycles (loops) by moving one pointer faster than the other. If they meet, a cycle exists.
Click to reveal answer
intermediate
Why is the runner technique efficient?
It solves problems in a single pass through the list, using two pointers, which saves time and memory compared to multiple passes.
Click to reveal answer
beginner
Give a real-life analogy for the runner technique.
Imagine two friends walking on a path: one walks slowly, the other runs faster. When the faster friend reaches the end, the slower friend is halfway along the path.
Click to reveal answer
What does the fast pointer do in the runner technique?
AMoves two steps at a time
BMoves one step at a time
CStays still
DMoves three steps at a time
If the fast and slow pointers meet in a linked list, what does it indicate?
AThe list has only one node
BThe list is empty
CThere is a cycle in the list
DThe list is sorted
What is the main advantage of using the runner technique?
AUses extra memory
BRequires multiple passes
COnly works on arrays
DSolves problems in one pass efficiently
Which problem is NOT typically solved by the runner technique?
ASorting the linked list
BFinding the middle node
CDetecting cycles
DChecking if the list is empty
In the runner technique, when does the slow pointer reach the middle?
AWhen the list is empty
BWhen the fast pointer reaches the end
CWhen both pointers start
DWhen the slow pointer reaches the end
Explain how the runner technique works to find the middle of a linked list.
Think about two friends walking at different speeds on a path.
You got /4 concepts.
    Describe how the runner technique can detect a cycle in a linked list.
    Imagine two runners on a circular track.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the runner technique in linked lists?
      easy
      A. To use two pointers moving at different speeds to solve problems efficiently
      B. To sort the linked list elements in ascending order
      C. To convert a linked list into an array
      D. To delete all nodes from the linked list

      Solution

      1. Step 1: Understand the runner technique concept

        The runner technique involves two pointers moving through the list at different speeds to solve problems like finding the middle or detecting loops.
      2. Step 2: Identify the main purpose

        This technique is used to efficiently solve linked list problems in one pass without extra memory.
      3. Final Answer:

        To use two pointers moving at different speeds to solve problems efficiently -> Option A
      4. Quick Check:

        Runner technique = two pointers at different speeds [OK]
      Hint: Runner technique uses two pointers at different speeds [OK]
      Common Mistakes:
      • Thinking it sorts the list
      • Confusing it with list conversion
      • Assuming it deletes nodes
      2. Which of the following is the correct way to initialize two pointers for the runner technique in a singly linked list?
      easy
      A. slow = head; fast = null
      B. slow = head; fast = head.next
      C. slow = null; fast = head
      D. slow = head.next; fast = head

      Solution

      1. Step 1: Understand pointer initialization for runner technique

        Typically, slow pointer starts at head, and fast pointer starts at the next node to move faster.
      2. Step 2: Check each option

        slow = head; fast = head.next correctly sets slow to head and fast to head.next, allowing fast to move two steps ahead.
      3. Final Answer:

        slow = head; fast = head.next -> Option B
      4. Quick Check:

        Fast pointer starts one step ahead [OK]
      Hint: Fast pointer starts one node ahead of slow [OK]
      Common Mistakes:
      • Setting slow ahead of fast
      • Starting pointers at null
      • Both pointers starting at same node without offset
      3. Consider the following linked list: 1 -> 2 -> 3 -> 4 -> 5 -> null.
      Using the runner technique where slow moves one step and fast moves two steps, what value will slow point to when fast reaches the end?
      medium
      A. 5
      B. 2
      C. 4
      D. 3

      Solution

      1. Step 1: Trace slow and fast pointers through the list

        Start: slow=1, fast=1
        Move 1: slow=2, fast=3
        Move 2: slow=3, fast=5
        Move 3: fast tries to move two steps but reaches null, stop.
      2. Step 2: Identify slow pointer's position when fast ends

        When fast reaches the end (node 5), slow is at node 3.
      3. Final Answer:

        3 -> Option D
      4. Quick Check:

        Middle node = 3 [OK]
      Hint: Slow pointer at middle when fast reaches end [OK]
      Common Mistakes:
      • Stopping too early and picking 2
      • Assuming slow moves as fast as fast pointer
      • Confusing node values with pointer positions
      4. In the runner technique, if the fast pointer is not moving two steps but only one step each time, what problem might occur?
      medium
      A. The fast pointer will never reach the end, causing an infinite loop
      B. The slow pointer will move too fast and skip nodes
      C. The technique will still work correctly without issues
      D. The slow pointer will become null immediately

      Solution

      1. Step 1: Understand the role of fast pointer speed

        The fast pointer moves two steps to catch up or reach the end faster than slow pointer.
      2. Step 2: Analyze effect if fast moves only one step

        If fast moves one step, both pointers move at same speed, so fast never overtakes slow, possibly causing infinite loop in cycle detection.
      3. Final Answer:

        The fast pointer will never reach the end, causing an infinite loop -> Option A
      4. Quick Check:

        Fast pointer speed crucial to avoid infinite loops [OK]
      Hint: Fast pointer must move faster to avoid infinite loops [OK]
      Common Mistakes:
      • Assuming slow pointer moves too fast
      • Thinking technique works with equal speeds
      • Ignoring infinite loop possibility
      5. You want to detect if a linked list has a cycle using the runner technique. Which of the following best describes the condition to confirm a cycle?
      hard
      A. The slow pointer reaches the end of the list
      B. The fast pointer becomes null
      C. The slow and fast pointers meet at the same node
      D. The slow pointer moves two steps at a time

      Solution

      1. Step 1: Recall cycle detection with runner technique

        If a cycle exists, fast pointer will eventually catch up to slow pointer inside the loop.
      2. Step 2: Identify the condition for cycle detection

        The pointers meeting at the same node means the list has a cycle.
      3. Final Answer:

        The slow and fast pointers meet at the same node -> Option C
      4. Quick Check:

        Pointers meeting = cycle detected [OK]
      Hint: Cycle detected when pointers meet [OK]
      Common Mistakes:
      • Thinking fast pointer reaching null means cycle
      • Assuming slow pointer reaches end means cycle
      • Confusing pointer speeds
      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