Bird
Raised Fist0
DSA C#programming~10 mins

Delete Node at Beginning in DSA C# - Execution Trace

Choose your learning style10 modes available
Concept Flow - Delete Node at Beginning
Start with head node
↓
Check if head is null?
Yes→List is empty, nothing to delete
No↓
Move head to next node
↓
Old head node removed
↓
New head is first node
↓
End
This flow shows checking if the list is empty, then moving the head pointer to the next node to delete the first node.
Execution Sample
DSA C#
Node head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);

// Delete first node
if (head != null) {
    head = head.next;
}
This code deletes the first node by moving the head pointer to the second node.
Execution Table
Stephead valuehead.next valueActionList state after action
112Initial list created1 -> 2 -> 3 -> null
212Check if head is nullHead is not null, continue
312Move head to head.nexthead now points to node with value 2
423Old first node removed2 -> 3 -> null
523EndFinal list: 2 -> 3 -> null
💡 head reaches node with value 2, first node deleted
Variable Tracker
VariableStartAfter Step 3After Step 4Final
headNode(1)Node(2)Node(2)Node(2)
head.nextNode(2)Node(3)Node(3)Node(3)
Key Moments - 2 Insights
Why do we move head to head.next to delete the first node?
Because head points to the first node, moving it to head.next skips the first node, effectively removing it from the list as shown in step 3 and 4 of the execution_table.
What happens if the list is empty (head is null)?
If head is null, there is no node to delete. The code checks this in step 2 and stops without changes.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of head after step 3?
ANode with value 2
BNode with value 1
CNode with value 3
Dnull
💡 Hint
Check the 'head value' column at step 4 in the execution_table.
At which step does the first node get removed from the list?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Action' column describing node removal in the execution_table.
If the list was empty initially, what would happen at step 2?
Ahead moves to next node
BList remains empty, no deletion
CError occurs
DNew node is created
💡 Hint
Refer to the 'Action' and 'List state after action' columns at step 2.
Concept Snapshot
Delete Node at Beginning:
- Check if head is null (empty list)
- If not, move head to head.next
- Old first node is removed
- New head points to second node
- List size decreases by one
Full Transcript
To delete the first node in a linked list, we first check if the list is empty by seeing if head is null. If it is not empty, we move the head pointer to the next node. This skips the original first node, effectively deleting it. The list then starts from the new head. If the list is empty, no deletion happens. This process is shown step-by-step in the execution table and variable tracker.

Practice

(1/5)
1. What happens when you delete the first node in a singly linked list?
easy
A. The last node is deleted instead of the first
B. Nothing happens because the first node cannot be deleted
C. The entire list is deleted
D. The head pointer moves to the second node, removing the first node from the list

Solution

  1. Step 1: Understand the head pointer role

    The head pointer points to the first node in the list.
  2. Step 2: Update head to next node

    Deleting the first node means moving the head pointer to the second node, effectively removing the first node.
  3. Final Answer:

    The head pointer moves to the second node, removing the first node from the list -> Option D
  4. Quick Check:

    Delete first node = move head to next [OK]
Hint: Delete first node by moving head to next node [OK]
Common Mistakes:
  • Trying to delete the last node instead
  • Not updating the head pointer
  • Deleting the entire list accidentally
2. Which of the following is the correct syntax to delete the first node in a singly linked list in C#?
easy
A. head = null.next;
B. head.next = head;
C. head = head.next;
D. head.next = null;

Solution

  1. Step 1: Identify the head pointer update

    To delete the first node, assign head to head.next to move the head pointer forward.
  2. Step 2: Check syntax correctness

    head = head.next; correctly updates the head pointer to the second node.
  3. Final Answer:

    head = head.next; -> Option C
  4. Quick Check:

    Correct syntax to delete first node = head = head.next; [OK]
Hint: Assign head to head.next to delete first node [OK]
Common Mistakes:
  • Reversing the assignment order
  • Using null.next which is invalid
  • Setting head.next to null instead of head
3. Consider the following code snippet for deleting the first node in a linked list:
Node head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);
head = head.next;
What is the state of the list after deletion?
medium
A. 2 -> 3 -> null
B. null
C. 3 -> null
D. 1 -> 2 -> 3 -> null

Solution

  1. Step 1: Initial list creation

    The list starts as 1 -> 2 -> 3 -> null with head at node 1.
  2. Step 2: Delete first node by moving head

    head = head.next moves head to node 2, so the list becomes 2 -> 3 -> null.
  3. Final Answer:

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

    After deletion, list starts at second node [OK]
Hint: After deletion, list starts from second node [OK]
Common Mistakes:
  • Forgetting to update head pointer
  • Assuming first node still exists
  • Confusing node values after deletion
4. The following code attempts to delete the first node of a linked list but causes a runtime error:
Node head = null;
head = head.next;
What is the error and how to fix it?
medium
A. SyntaxError; fix by adding semicolon
B. NullReferenceException; fix by checking if head is not null before deleting
C. IndexOutOfRangeException; fix by resizing list
D. No error; code works fine

Solution

  1. Step 1: Identify cause of error

    head is null, so accessing head.next causes NullReferenceException.
  2. Step 2: Fix by adding null check

    Check if head != null before assigning head = head.next to avoid error.
  3. Final Answer:

    NullReferenceException; fix by checking if head is not null before deleting -> Option B
  4. Quick Check:

    Null head causes error; check before delete [OK]
Hint: Always check head != null before deleting first node [OK]
Common Mistakes:
  • Ignoring null checks causing runtime errors
  • Assuming list always has nodes
  • Confusing syntax errors with runtime errors
5. You have a singly linked list with nodes: 5 -> 10 -> 15 -> 20 -> null. You delete the first node twice using head = head.next; two times. What is the resulting list?
hard
A. 15 -> 20 -> null
B. 10 -> 15 -> 20 -> null
C. 20 -> null
D. null

Solution

  1. Step 1: Initial list and first deletion

    List starts as 5 -> 10 -> 15 -> 20 -> null. After first deletion, head moves to 10, list is 10 -> 15 -> 20 -> null.
  2. Step 2: Second deletion moves head again

    After second deletion, head moves to 15, list is 15 -> 20 -> null.
  3. Final Answer:

    15 -> 20 -> null -> Option A
  4. Quick Check:

    Two deletions remove first two nodes [OK]
Hint: Each deletion moves head to next node [OK]
Common Mistakes:
  • Deleting only once instead of twice
  • Confusing node values after multiple deletions
  • Assuming list becomes empty too early
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