Bird
Raised Fist0
DSA Pythonprogramming~5 mins

Traversal Forward and Backward in DSA Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does forward traversal mean in a linked list?
Forward traversal means moving from the first node to the last node by following the next links one by one.
Click to reveal answer
beginner
What is backward traversal in a doubly linked list?
Backward traversal means moving from the last node to the first node by following the previous links one by one.
Click to reveal answer
beginner
Why can't we do backward traversal in a singly linked list?
Because singly linked lists only have links to the next node, not to the previous one, so we cannot move backward easily.
Click to reveal answer
beginner
In a doubly linked list, which pointers are used for forward and backward traversal?
The 'next' pointer is used for forward traversal, and the 'prev' pointer is used for backward traversal.
Click to reveal answer
beginner
What is the output after forward traversal of this doubly linked list: 1 <-> 2 <-> 3 <-> null?
The output is: 1 -> 2 -> 3 -> null
Click to reveal answer
Which traversal is possible in a singly linked list?
ANo traversal possible
BBackward traversal only
CForward traversal only
DBoth forward and backward traversal
In a doubly linked list, what does the 'prev' pointer do?
APoints to the previous node
BPoints to the head node
CPoints to the next node
DPoints to the tail node
What is the first step in forward traversal of a linked list?
AStart from the tail node
BStart from the head node
CStart from the middle node
DStart from any random node
Which data structure allows easy traversal both forward and backward?
ADoubly linked list
BSingly linked list
CStack
DQueue
What will be the output of backward traversal of this doubly linked list: 1 <-> 2 <-> 3 <-> null?
A1 -> 2 -> 3 -> null
B3 -> null -> 2 -> 1
Cnull -> 1 -> 2 -> 3
D3 -> 2 -> 1 -> null
Explain how forward and backward traversal work in a doubly linked list.
Think about the pointers that connect nodes in both directions.
You got /4 concepts.
    Why is backward traversal not possible in a singly linked list? How does a doubly linked list solve this?
    Focus on the difference in node connections.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does traversal forward mean when moving through a list?
      easy
      A. Visiting elements randomly
      B. Visiting elements from the last to the first
      C. Visiting elements from the first to the last
      D. Skipping every other element

      Solution

      1. Step 1: Understand traversal direction

        Traversal forward means starting at the beginning of the list and moving step-by-step to the end.
      2. Step 2: Compare options

        Only Visiting elements from the first to the last describes visiting elements from first to last, which matches forward traversal.
      3. Final Answer:

        Visiting elements from the first to the last -> Option C
      4. Quick Check:

        Forward traversal = first to last [OK]
      Hint: Forward means start to end in order [OK]
      Common Mistakes:
      • Confusing forward with backward traversal
      • Thinking traversal means skipping elements
      • Assuming traversal is random
      2. Which of the following Python loops correctly traverses a list items backward?
      easy
      A. for i in range(len(items)): print(items[i])
      B. for i in range(len(items)-1, -1, -1): print(items[i])
      C. for i in items: print(i)
      D. for i in range(0, len(items), 2): print(items[i])

      Solution

      1. Step 1: Identify backward traversal syntax

        Backward traversal uses a loop that starts from the last index and moves to the first, decreasing the index.
      2. Step 2: Check each option

        for i in range(len(items)-1, -1, -1): print(items[i]) uses range(len(items)-1, -1, -1), which counts backward correctly.
      3. Final Answer:

        for i in range(len(items)-1, -1, -1): print(items[i]) -> Option B
      4. Quick Check:

        Backward loop uses decreasing range [OK]
      Hint: Use range with step -1 for backward loops [OK]
      Common Mistakes:
      • Using range(len(items)) for backward traversal
      • Forgetting to set step as -1
      • Using direct iteration which is forward only
      3. What is the output of this code?
      items = [10, 20, 30]
      for i in range(len(items)-1, -1, -1):
          print(items[i], end=' ')
      medium
      A. 30 20 10
      B. 10 20 30
      C. 0 1 2
      D. SyntaxError

      Solution

      1. Step 1: Understand the loop range

        The loop runs from index 2 down to 0 (inclusive), so it visits indices 2, 1, 0 in order.
      2. Step 2: Print elements in backward order

        items[2] = 30, items[1] = 20, items[0] = 10, printed with spaces.
      3. Final Answer:

        30 20 10 -> Option A
      4. Quick Check:

        Backward print = 30 20 10 [OK]
      Hint: Backward range prints list in reverse order [OK]
      Common Mistakes:
      • Confusing index order and printing forward
      • Misreading range parameters
      • Expecting index numbers instead of list values
      4. Find the error in this backward traversal code:
      items = [1, 2, 3, 4]
      for i in range(len(items)):
          print(items[len(items)-i])
      medium
      A. IndexError due to out-of-range index
      B. SyntaxError because of missing colon
      C. Prints elements forward instead of backward
      D. No error, prints backward correctly

      Solution

      1. Step 1: Analyze index calculation

        Index used is len(items)-i. For i=0, index is 4, which is out of range (max index 3).
      2. Step 2: Identify error type

        Accessing index 4 causes IndexError because list indices go from 0 to 3.
      3. Final Answer:

        IndexError due to out-of-range index -> Option A
      4. Quick Check:

        Index out of range = IndexError [OK]
      Hint: Check if index goes beyond list length [OK]
      Common Mistakes:
      • Using len(items)-i instead of len(items)-1-i
      • Ignoring zero-based indexing
      • Assuming no error if code runs partially
      5. Given a doubly linked list with nodes head and tail, which approach correctly prints all elements forward then backward?
      hard
      A. Traverse from tail to head, then from head to tail
      B. Traverse only from head to tail twice
      C. Traverse randomly from any node
      D. Traverse from head to tail printing, then from tail to head printing

      Solution

      1. Step 1: Understand doubly linked list traversal

        Doubly linked lists allow moving forward from head to tail and backward from tail to head using next and prev pointers.
      2. Step 2: Identify correct traversal order

        To print forward then backward, first traverse from head to tail, then from tail to head.
      3. Final Answer:

        Traverse from head to tail printing, then from tail to head printing -> Option D
      4. Quick Check:

        Forward then backward traversal = head to tail, tail to head [OK]
      Hint: Use head-to-tail then tail-to-head for full traversal [OK]
      Common Mistakes:
      • Trying to traverse backward without tail pointer
      • Traversing forward twice instead of backward
      • Assuming singly linked list can traverse backward
      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