DDSA Solutions

Delete Alternate Nodes

Time: O(n)
Space: O(1)

Problem Overview

Delete every alternate node in linked list (keep first, delete second, keep third, etc.).

Advertisement

Intuition

Delete every alternate node in linked list (keep first, delete second, keep third, etc.).

Algorithm

  1. 1Traverse: curr = head. While curr and curr.next: curr.next = curr.next.next. curr = curr.next.

Common Pitfalls

  • Simple pointer manipulation. Ensure the "next" link skips the deleted node cleanly.
Delete Alternate Nodes.java
Java
// Approach: Traverse the list and skip every other node by updating next pointers.
// Time: O(n) Space: O(1)
class Solution {
    public void deleteAlt(Node head) {
        Node prev = null;
        Node temp = head;
        int cnt = 0;
        while (temp != null) {
            cnt++;
            if (cnt % 2 == 0) {
                prev.next = temp.next;
            }
            prev = temp;
            temp = temp.next;
        }
    }
}

class Node {
    int data;
    Node next;

    public Node(int data) {
        this.data = data;
    }
}
Advertisement
Was this solution helpful?