DDSA Solutions

Delete Alternate Nodes

Time: O(n)
Space: O(1)
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?