Delete last node of linked list in java

Java program for Delete last node of linked list. Here problem description and explanation.

/*
    Java program for
    Delete the last node of singly linked list
*/
// Linked list node
class LinkNode
{
    public int data;
    public LinkNode next;
    public LinkNode(int data)
    {
        this.data = data;
        this.next = null;
    }
}
public class SingleLL
{
    public LinkNode head;
    public LinkNode tail;
    public SingleLL()
    {
        this.head = null;
        this.tail = null;
    }
    // Add new node at the end of linked list
    public void addNode(int value)
    {
        // Create a new node
        LinkNode node = new LinkNode(value);
        if (this.head == null)
        {
            this.head = node;
        }
        else
        {
            this.tail.next = node;
        }
        this.tail = node;
    }
    // Display linked list element
    public void display()
    {
        if (this.head == null)
        {
            System.out.println("Empty Linked List");
            return;
        }
        LinkNode temp = this.head;
        // iterating linked list elements
        while (temp != null)
        {
            System.out.print(temp.data + " → ");
            // Visit to next node
            temp = temp.next;
        }
        System.out.println("NULL");
    }
    // Delete last node of singly linked list
    public void deleteLastNode()
    {
        if (this.head == null)
        {
            System.out.println("Empty Linked List");
            return;
        }
        else
        {
            LinkNode temp = this.head;
            LinkNode find = null;
            // Find second last node
            while (temp.next != null)
            {
                find = temp;
                temp = temp.next;
            }
            if (find == null)
            {
                // Delete head node of linked list
                this.head = null;
                this.tail = null;
            }
            else
            {
                // Set new last node
                this.tail = find;
                find.next = null;
            }
        }
    }
    public static void main(String[] args)
    {
        SingleLL sll = new SingleLL();
        // Linked list
        // 1 → 2 → 3 → 4 → 5 → 6 → NULL
        sll.addNode(1);
        sll.addNode(2);
        sll.addNode(3);
        sll.addNode(4);
        sll.addNode(5);
        sll.addNode(6);
        System.out.println("Before Delete ");
        sll.display();
        sll.deleteLastNode();
        System.out.println("After Delete ");
        sll.display();
    }
}
Delete last node in linked list

Output

Before Delete
1 → 2 → 3 → 4 → 5 → 6 → NULL
After Delete
1 → 2 → 3 → 4 → 5 → NULL


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved