📖 Scenario: You are building a simple linked list to keep track of tasks in a to-do list app. Each task is a node in the list.
🎯 Goal: Learn how to add a new task at the start of the linked list using a push operation.
📋 What You'll Learn
Create a Node class with value and next properties
Create a LinkedList class with a head property
Add a push method to add a new node at the start
Print the linked list values after pushing nodes
💡 Why This Matters
🌍 Real World
Linked lists are used in many apps to manage ordered data like tasks, playlists, or history.
💼 Career
Understanding linked lists helps in software development roles that require data structure knowledge for efficient data management.
Progress0 / 4 steps
1
Create Node and LinkedList classes
Create a class called Node with a constructor that takes a value of type string and a next property initialized to null. Then create a class called LinkedList with a head property initialized to null.
DSA Typescript
Hint
Define the Node class first, then the LinkedList class with head set to null.
2
Add push method to LinkedList
Inside the LinkedList class, add a method called push that takes a value of type string. This method should create a new Node with the given value, set its next to the current head, and then update head to this new node.
DSA Typescript
Hint
Create a new node, link it to the current head, then update head to the new node.
3
Push tasks into the linked list
Create a variable called tasks as a new LinkedList. Use the push method to add these tasks in order: 'Write report', 'Email client', 'Update website'.
DSA Typescript
Hint
Create the linked list instance and push the tasks in the given order.
4
Print the linked list tasks
Write a printList method inside the LinkedList class that prints all task values from head to the end, separated by -> and ending with null. Then call tasks.printList() to display the list.
DSA Typescript
Hint
Use a loop to go through each node starting from head, build a string with values and arrows, then print it.
Practice
(1/5)
1. What does the push operation do in a linked list when using nodes?
easy
A. Adds a new node at the beginning of the list
B. Removes the last node from the list
C. Searches for a node with a specific value
D. Deletes the first node of the list
Solution
Step 1: Understand push operation in linked list
The push operation adds a new node to the start (head) of the linked list.
Step 2: Effect of push on linked list
The new node becomes the new head, pointing to the previous first node.
Final Answer:
Adds a new node at the beginning of the list -> Option A
Quick Check:
Push means add at head = D [OK]
Hint: Push always adds node at the start of the list [OK]
Common Mistakes:
Confusing push with pop (removal)
Thinking push adds at the end
Mixing push with search or delete
2. Which of the following is the correct TypeScript syntax to create a new node and push it to the front of a singly linked list?
easy
A. newNode = new Node(value); head = newNode.next;
B. const newNode = Node(value); head.next = newNode; head = newNode;
C. const newNode = new Node(value); newNode.next = head; head = newNode;
D. head = new Node(value); head.next = null;
Solution
Step 1: Create a new node with given value
Use new Node(value) to create a node instance.
Step 2: Link new node to current head and update head
Set newNode.next = head and then head = newNode to push at front.
Final Answer:
const newNode = new Node(value); newNode.next = head; head = newNode; -> Option C
Quick Check:
New node points to old head, head updated = A [OK]
Hint: New node next points to head, then head updated [OK]
Common Mistakes:
Forgetting to link new node's next to old head
Assigning head.next instead of newNode.next
Not updating head to new node
3. What will be the linked list after executing this TypeScript code?
class Node {
value: number;
next: Node | null = null;
constructor(value: number) { this.value = value; }
}
let head: Node | null = null;
function push(value: number) {
const newNode = new Node(value);
newNode.next = head;
head = newNode;
}
push(10);
push(20);
push(30);
medium
A. null -> 10 -> 20 -> 30
B. 10 -> 20 -> 30 -> null
C. 20 -> 30 -> 10 -> null
D. 30 -> 20 -> 10 -> null
Solution
Step 1: Push 10 to empty list
Head becomes node with value 10, next is null.
Step 2: Push 20 and then 30
Each new node points to previous head, so order is 30 -> 20 -> 10 -> null.
Final Answer:
30 -> 20 -> 10 -> null -> Option D
Quick Check:
Last pushed is head = A [OK]
Hint: Last pushed node is always new head [OK]
Common Mistakes:
Assuming push adds at tail
Reading list in wrong order
Confusing next pointers
4. Identify the error in this push function for a singly linked list:
function push(value: number) {
const newNode = new Node(value);
head.next = newNode;
head = newNode;
}
medium
A. head might be null causing runtime error
B. head.next = newNode is missing
C. head is assigned before linking newNode
D. Node constructor is called incorrectly
Solution
Step 1: Check head usage before assignment
The code uses head.next without checking if head is null.
Step 2: Consequence of head being null
If list is empty (head null), accessing head.next causes runtime error.
Final Answer:
head might be null causing runtime error -> Option A
Quick Check:
Accessing head.next without null check = B [OK]
Hint: Always check if head is null before accessing head.next [OK]
Common Mistakes:
Not checking for empty list before push
Forgetting to set newNode.next
Assigning head incorrectly
5. Given a linked list with nodes containing values [5, 15, 25] (5 is head), what will be the list after pushing 35 and then 45 using the push function? Also, explain how the head changes after each push.
hard
A. 35 -> 45 -> 5 -> 15 -> 25 -> null; head moves to 35 then 45
B. 45 -> 35 -> 5 -> 15 -> 25 -> null; head moves to newest node each push
C. 5 -> 15 -> 25 -> 35 -> 45 -> null; head stays at 5
D. null; list is cleared after push
Solution
Step 1: Initial list and push 35
Original head is 5. Push 35 creates new node 35 pointing to 5. Head updates to 35.
Step 2: Push 45 and update head
Push 45 creates new node 45 pointing to 35. Head updates to 45. Final list: 45 -> 35 -> 5 -> 15 -> 25 -> null.
Final Answer:
45 -> 35 -> 5 -> 15 -> 25 -> null; head moves to newest node each push -> Option B
Quick Check:
Push adds at front, head updates = C [OK]
Hint: Head always points to last pushed node [OK]
Common Mistakes:
Assuming push adds at tail
Not updating head after push
Confusing node order after pushes
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.