Linked List Insertion

public class LinkedListInsertion {

    // Node class made static & public so it's accessible
    public static class IntNode {

        int data;
        IntNode link;

        public IntNode(int data, IntNode link) {
            this.data = data;
            this.link = link;
        }
    }

    // Print the list
    public static void printList(IntNode head) {
        IntNode current = head;
        while (current != null) {
            System.out.print(current.data + " → ");
            current = current.link;
        }
        System.out.println("null");
    }

    // Insert after a given node (middle or tail insertion)
    public static void insertAfter(IntNode node, int value) {
        if (node != null) {
            node.link = new IntNode(value, node.link);
        }
    }

    public static void main(String[] args) {
        IntNode head = null;

        // 1. Insert into empty list
        System.out.println("Before inserting into empty list:");
        printList(head);
        head = new IntNode(15, null);
        System.out.println("After inserting 15:");
        printList(head);

        // 2. Insert at front (new head)
        System.out.println("\nBefore inserting 13 at front:");
        printList(head);
        head = new IntNode(13, head);
        System.out.println("After inserting 13:");
        printList(head);

        // 3. Insert 10 after 13
        System.out.println("\nBefore inserting 10 after 13:");
        printList(head);
        insertAfter(head, 10);
        System.out.println("After inserting 10:");
        printList(head);

        // 4. Insert 7 at the tail
        System.out.println("\nBefore inserting 7 at tail:");
        printList(head);
        IntNode current = head;
        while (current.link != null) {
            current = current.link;
        }
        insertAfter(current, 7);
        System.out.println("After inserting 7:");
        printList(head);
    }
}

 

Scroll to Top