Bird
Raised Fist0
DSA C#programming~5 mins

Delete Node at Beginning in DSA C# - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Delete Node at Beginning
O(1)
Understanding Time Complexity

We want to understand how long it takes to remove the first item from a linked list.

How does the time needed change when the list grows bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


// Remove the first node from a singly linked list
public void DeleteAtBeginning()
{
    if (head == null) return;
    head = head.Next;
}
    

This code removes the first node by moving the head pointer to the next node.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Updating the head pointer once.
  • How many times: Exactly once, no loops or recursion.
How Execution Grows With Input

Removing the first node always takes the same steps, no matter how big the list is.

Input Size (n)Approx. Operations
101
1001
10001

Pattern observation: The work stays the same even if the list grows.

Final Time Complexity

Time Complexity: O(1)

This means deleting the first node takes a fixed amount of time regardless of list size.

Common Mistake

[X] Wrong: "Deleting the first node takes longer if the list is bigger because we have to check all nodes."

[OK] Correct: We only change the head pointer once; we do not look at other nodes.

Interview Connect

Knowing that deleting the first node is quick helps you explain efficient list operations clearly and confidently.

Self-Check

"What if we had to delete the last node instead? How would the time complexity change?"

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