Write a python program to implement "Insert at End" and "Delete from End" operation of a singly Linked List using Class "Node".
Added 2 weeks ago
Active
Viewed 24
Ans

# Define the Node class
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

# Define the Singly Linked List class
class SinglyLinkedList:
    def __init__(self):
        self.head = None

    # Insert at end
    def insert_at_end(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        temp = self.head
        while temp.next:
            temp = temp.next
        temp.next = new_node

    # Delete from end
    def delete_from_end(self):
        if not self.head:
            print("List is empty. Nothing to delete.")
            return
        if not self.head.next:
            print(f"Deleted node: {self.head.data}")
            self.head = None
            return
        temp = self.head
        while temp.next.next:
            temp = temp.next
        print(f"Deleted node: {temp.next.data}")
        temp.next = None

    # Display the list
    def display(self):
        if not self.head:
            print("List is empty.")
            return
        temp = self.head
        while temp:
            print(temp.data, end=" -> ")
            temp = temp.next
        print("None")

# Example usage
ll = SinglyLinkedList()
ll.insert_at_end(10)
ll.insert_at_end(20)
ll.insert_at_end(30)
print("Current List:")
ll.display()

ll.delete_from_end()
print("After deletion:")
ll.display()

Sample Output:

Current List:
10 -> 20 -> 30 -> None
Deleted node: 30
After deletion:
10 -> 20 -> None


Related Questions