📖 Scenario: You are managing a simple list of tasks using a linked list. Each task is a node in the list. Sometimes, you need to remove the first task when it is completed.
🎯 Goal: Build a linked list with three tasks, then remove the first task from the list, and finally print the remaining tasks.
📋 What You'll Learn
Create a linked list with exactly three nodes containing the strings: "Task1", "Task2", "Task3"
Create a variable called head that points to the first node
Write code to delete the first node by updating head
Print the linked list nodes from head to the end, separated by ' -> ', ending with 'null'
💡 Why This Matters
🌍 Real World
Linked lists are used in many applications like task scheduling, undo functionality in editors, and managing playlists.
💼 Career
Understanding linked list operations like deletion is fundamental for software development roles involving data structures and memory management.
Progress0 / 4 steps
1
Create the linked list with three nodes
Create a class called Node with a string data and a Node reference called next. Then create three nodes with data "Task1", "Task2", and "Task3". Link them so that node1.next is node2 and node2.next is node3. Finally, create a variable called head that points to node1.
DSA C#
Hint
Define a Node class with a constructor. Then create three nodes and link them by setting the next property.
2
Prepare to delete the first node
Create a variable called temp and set it to head. This will hold the node to be deleted.
DSA C#
Hint
Use Node temp = head; to keep track of the node you want to delete.
3
Delete the first node by updating head
Set head to head.next to remove the first node from the list.
DSA C#
Hint
Assign head = head.next; to remove the first node from the list.
4
Print the linked list after deletion
Use a Node variable called current starting at head. Use a while loop to print each node's data followed by " -> ". After the loop, print "null".
DSA C#
Hint
Use a while loop to go through each node starting at head. Print the data and " -> ". After the loop, print "null".
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
Step 1: Understand the head pointer role
The head pointer points to the first node in the list.
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.
Final Answer:
The head pointer moves to the second node, removing the first node from the list -> Option D
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
Step 1: Identify the head pointer update
To delete the first node, assign head to head.next to move the head pointer forward.
Step 2: Check syntax correctness
head = head.next; correctly updates the head pointer to the second node.
Final Answer:
head = head.next; -> Option C
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
Step 1: Initial list creation
The list starts as 1 -> 2 -> 3 -> null with head at node 1.
Step 2: Delete first node by moving head
head = head.next moves head to node 2, so the list becomes 2 -> 3 -> null.
Final Answer:
2 -> 3 -> null -> Option A
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
Step 1: Identify cause of error
head is null, so accessing head.next causes NullReferenceException.
Step 2: Fix by adding null check
Check if head != null before assigning head = head.next to avoid error.
Final Answer:
NullReferenceException; fix by checking if head is not null before deleting -> Option B
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
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.
Step 2: Second deletion moves head again
After second deletion, head moves to 15, list is 15 -> 20 -> null.
Final Answer:
15 -> 20 -> null -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.