Bird
Raised Fist0
DSA Javascriptprogramming~20 mins

Push Using Linked List Node in DSA Javascript - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Linked List Push Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output after pushing nodes in a linked list?
Consider a linked list initially empty. We push nodes with values 10, 20, then 30 in that order. What is the printed linked list after these operations?
DSA Javascript
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }

  push(value) {
    const newNode = new Node(value);
    if (!this.head) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      current.next = newNode;
    }
  }

  print() {
    let current = this.head;
    let result = '';
    while (current) {
      result += current.value + ' -> ';
      current = current.next;
    }
    result += 'null';
    console.log(result);
  }
}

const list = new LinkedList();
list.push(10);
list.push(20);
list.push(30);
list.print();
A10 -> 30 -> 20 -> null
B30 -> 20 -> 10 -> null
C10 -> 20 -> 30 -> null
Dnull
Attempts:
2 left
💡 Hint
Remember, push adds nodes at the end of the list.
❓ Predict Output
intermediate
2:00remaining
What is the linked list after pushing nodes with values 5 and 15?
Given a linked list with one node of value 5, we push a node with value 15. What is the linked list printed?
DSA Javascript
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }

  push(value) {
    const newNode = new Node(value);
    if (!this.head) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      current.next = newNode;
    }
  }

  print() {
    let current = this.head;
    let result = '';
    while (current) {
      result += current.value + ' -> ';
      current = current.next;
    }
    result += 'null';
    console.log(result);
  }
}

const list = new LinkedList();
list.push(5);
list.push(15);
list.print();
A5 -> 15 -> null
B15 -> 5 -> null
C5 -> null
D15 -> null
Attempts:
2 left
💡 Hint
Push adds nodes at the end, so the first node stays at head.
❓ Predict Output
advanced
2:00remaining
What is the output after pushing nodes with values 1, 2, 3, 4?
A linked list is empty initially. We push nodes with values 1, 2, 3, and 4 in that order. What is the printed linked list?
DSA Javascript
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }

  push(value) {
    const newNode = new Node(value);
    if (!this.head) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      current.next = newNode;
    }
  }

  print() {
    let current = this.head;
    let result = '';
    while (current) {
      result += current.value + ' -> ';
      current = current.next;
    }
    result += 'null';
    console.log(result);
  }
}

const list = new LinkedList();
list.push(1);
list.push(2);
list.push(3);
list.push(4);
list.print();
A1 -> 2 -> 3 -> 4 -> null
B4 -> 3 -> 2 -> 1 -> null
C1 -> 3 -> 2 -> 4 -> null
Dnull
Attempts:
2 left
💡 Hint
Push adds nodes at the end, so order is preserved.
❓ Predict Output
advanced
2:00remaining
What error occurs if push method forgets to update current.next?
In the push method, if we create a new node but forget to assign it to current.next, what happens when we print the list after pushing values 7 and 8?
DSA Javascript
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }

  push(value) {
    const newNode = new Node(value);
    if (!this.head) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      // Missing: current.next = newNode;
    }
  }

  print() {
    let current = this.head;
    let result = '';
    while (current) {
      result += current.value + ' -> ';
      current = current.next;
    }
    result += 'null';
    console.log(result);
  }
}

const list = new LinkedList();
list.push(7);
list.push(8);
list.print();
Anull
B7 -> null
CTypeError: Cannot read property 'next' of null
D7 -> 8 -> null
Attempts:
2 left
💡 Hint
If you don't link the new node, it won't be added to the list.
🧠 Conceptual
expert
1:00remaining
How many nodes are in the linked list after pushing 4 nodes?
If you push nodes with values 11, 22, 33, and 44 into an empty linked list, how many nodes does the list contain?
A0
B5
C3
D4
Attempts:
2 left
💡 Hint
Each push adds exactly one node.

Practice

(1/5)
1. What does the push operation do in a linked list when using nodes?
easy
A. Removes the last node from the list
B. Adds a new node at the beginning of the list
C. Searches for a node with a specific value
D. Deletes the first node of the list

Solution

  1. Step 1: Understand push operation in linked list

    The push operation adds a new node to the start (head) of the linked list.
  2. Step 2: Compare with other operations

    Removing or searching nodes are different operations, not push.
  3. Final Answer:

    Adds a new node at the beginning of the list -> Option B
  4. Quick Check:

    Push = Add at head [OK]
Hint: Push always adds node at the start of the list [OK]
Common Mistakes:
  • Confusing push with pop or delete
  • Thinking push adds at the end
  • Mixing push with search operation
2. Which of the following is the correct syntax to create a new node and push it to the front of a linked list in JavaScript?
easy
A. newNode = Node(value); head = newNode.next;
B. head = new Node(value); head.next = newNode;
C. let newNode = new Node(value); newNode.next = head; head = newNode;
D. head.next = new Node(value); head = head.next;

Solution

  1. Step 1: Create new node and link it to current head

    We create a new node, set its next to current head, then update head to new node.
  2. Step 2: Check each option

    let newNode = new Node(value); newNode.next = head; head = newNode; correctly does this. Others either reverse assignments or miss new keyword.
  3. Final Answer:

    let newNode = new Node(value); newNode.next = head; head = newNode; -> Option C
  4. Quick Check:

    New node points to old head, head updated [OK]
Hint: New node's next points to old head, then update head [OK]
Common Mistakes:
  • Forgetting to use 'new' keyword
  • Assigning head before setting newNode.next
  • Mixing order of assignments
3. What will be the linked list after executing the following code?
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

let head = null;

function push(value) {
  let newNode = new Node(value);
  newNode.next = head;
  head = newNode;
}

push(10);
push(20);
push(30);
medium
A. 10 -> 20 -> 30 -> null
B. null -> 10 -> 20 -> 30
C. 20 -> 30 -> 10 -> null
D. 30 -> 20 -> 10 -> null

Solution

  1. Step 1: Trace push calls and list updates

    First push(10): head = 10 -> null
    Second push(20): head = 20 -> 10 -> null
    Third push(30): head = 30 -> 20 -> 10 -> null
  2. Step 2: Confirm final linked list order

    New nodes are added at front, so list is 30 -> 20 -> 10 -> null.
  3. Final Answer:

    30 -> 20 -> 10 -> null -> Option D
  4. Quick Check:

    Last pushed is first in list [OK]
Hint: Last pushed node becomes new head [OK]
Common Mistakes:
  • Assuming push adds at end
  • Confusing order of nodes
  • Ignoring that head updates each push
4. Identify the error in the following push function for a linked list:
function push(value) {
  let newNode = Node(value);
  newNode.next = head;
  head = newNode;
}
medium
A. Missing 'new' keyword when creating newNode
B. Incorrect assignment of newNode.next
C. head should be assigned before newNode.next
D. Function should return the new head

Solution

  1. Step 1: Check node creation syntax

    Node is a class; must use 'new' keyword to create instance. Missing here.
  2. Step 2: Verify other assignments

    newNode.next = head and head = newNode are correct order and assignments.
  3. Final Answer:

    Missing 'new' keyword when creating newNode -> Option A
  4. Quick Check:

    Use 'new' to create class instance [OK]
Hint: Always use 'new' with class constructors [OK]
Common Mistakes:
  • Forgetting 'new' causes runtime error
  • Swapping assignment order
  • Expecting push to return head
5. Given a linked list with nodes 5 -> 15 -> 25 -> null, what will be the list after pushing a new node with value 10 using the push function?
function push(value) {
  let newNode = new Node(value);
  newNode.next = head;
  head = newNode;
}

Assume head points to the first node (5).
medium
A. 10 -> 5 -> 15 -> 25 -> null
B. 5 -> 15 -> 25 -> 10 -> null
C. 5 -> 10 -> 15 -> 25 -> null
D. 25 -> 15 -> 5 -> 10 -> null

Solution

  1. Step 1: Understand push adds node at front

    Push creates new node with value 10, sets its next to current head (5), then updates head to new node.
  2. Step 2: Visualize new list order

    New head is 10, followed by old list 5 -> 15 -> 25 -> null, so final list is 10 -> 5 -> 15 -> 25 -> null.
  3. Final Answer:

    10 -> 5 -> 15 -> 25 -> null -> Option A
  4. Quick Check:

    Push adds new node at front [OK]
Hint: Push inserts new node before current head [OK]
Common Mistakes:
  • Appending new node at end instead of front
  • Not updating head pointer
  • Mixing node order after push
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