JAVA Program for Deletion from End of a Doubly Linked List
JAVA Program to Delete a Node from the End
Each variation of Data Structure has some basic list of operations that can be performed on them one of them is Deletion from Various Nodes. Here in this page we’ll take a look at the detailed explanation of the deletion from end of a doubly linked list.
Steps to be followed while deleting a Node from end of a Doubly Linked List
- Check for the presence of Node in the List, if there exists some Nodes, Continue.
- Now, to Delete a node from the end of the Doubly Linked List, we’ll have to redirect links of the Linked List.
- Let the length of the List = i.
- First of all the next pointer of the (i-1)th node of the Linked List will now be re-directed towards the Tail of the Linked List.
Example:
If we have a list (10 –> 20 –> 30 –> 40 –> 50) and we have to Delete the node storing 50. So after Deleting the Last Node. Updated Linked list will be (10 –> 20 –> 30 –>40) . We will be learning more about the whole process in the explanation below.
Algorithm to be used for the Deletion of a Node from the End of a Doubly Linked List
- IF(HEAD == NULL)
- RETURN
- ELSE IF(HEAD != TAIL)
- HEAD = HEAD.NEXT
- TAIL.NEXT = NULL
- ELSE
- HEAD = TAIL = NULL
Java Program for deleting a node from end of a Doubly Linked List
import java.lang.*; class DoublyLinkedList { Node head; // not using parameterized constructor would by default // force head instance to become null // Node head = null; // can also do this, but not required // Node Class class Node { int data; Node next, prev; Node (int x) // parameterized constructor { data = x; next = null; prev = null; } } public void insertBeginning (int data) { // Creating newNode memory & assigning data value Node freshNode = new Node (data); freshNode.next = head; freshNode.prev = null; // if DLL had already >=1 nodes if (head != null) head.prev = freshNode; // changing head to this head = freshNode; } // function for deleting last node public void deleteLast () { if (head == null) { return; } else { if (head != null) { Node temp = head; while (temp.next != null) temp = temp.next; temp = temp.prev; temp.next = null; } else { head = null; } } } void printList () { //Node current will point to head Node curr = head; if (head == null) { System.out.println ("List is empty"); return; } while (curr != null) { //Prints each node by increasing order of the pointer System.out.print (curr.data + " "); curr = curr.next; } System.out.println (); } } class Main { public static void main (String args[]) { DoublyLinkedList doublylist = new DoublyLinkedList (); doublylist.insertBeginning (3); doublylist.insertBeginning (2); doublylist.insertBeginning (1); doublylist.insertBeginning (4); doublylist.insertBeginning (7); System.out.println ("List before deletion : "); doublylist.printList (); doublylist.deleteLast (); doublylist.deleteLast (); System.out.println ("List after deleting last node : "); doublylist.printList (); } }
Output
List before deletion : 7 4 1 2 3 List after deleting last node : 7 4 1
import java.lang.*; // Node Class class Node { int data; Node next, prev; Node(int x) // parameterized constructor { data = x; next = null; prev = null; } } class Main { static Node insertBeginning(Node head, int data) { // Creating newNode memory & assigning data value Node newNode = new Node(data); newNode.next = head; newNode.prev = null; // if DLL had already >=1 nodes if(head !=null) head.prev = newNode; // changing head to this head = newNode; return head; } // function for deleting last node static Node deleteLast (Node head) { if (head == null) { return head; } else { if (head != null) { Node temp = head; while (temp.next != null) temp = temp.next; temp = temp.prev; temp.next = null; } else { head = null; } } return head; } static void printList (Node head) { //Node current will point to head Node curr = head; if (head == null) { System.out.println ("List is empty"); return; } while (curr != null) { //Prints each node by increasing order of the pointer System.out.print (curr.data + " "); curr = curr.next; } System.out.println (); } public static void main(String args[]) { Node head = null; head = insertBeginning(head,3); head = insertBeginning(head,2); head = insertBeginning(head,1); head = insertBeginning(head,4); head = insertBeginning(head,7); System.out.println ("List before deletion : "); printList (head); head= deleteLast(head); head= deleteLast(head); System.out.println ("List after deleting last node : "); printList (head); } }
Output
List before deletion : 7 4 1 2 3 List after deleting last node : 7 4 1
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Doubly Linked List
- Introduction to Doubly Linked list in Data Structure
Click Here - Doubly Linked List in –
- Insertion in doubly linked list –
- Insertion at beginning in doubly linked list –
- Insertion at end in doubly linked list –
- Insertion at nth node in doubly linked list –
- Deletion in doubly linked list –
- Deletion from beginning in doubly linked list :
- Deletion from nth in doubly linked list :
- Deletion from end in doubly linked list :
- Insertion and Deletion in a doubly linked list :
- Insertion in the middle in a doubly linked list :
Doubly Linked List
- Introduction to Doubly Linked list in Data Structure
- Doubly Linked List in – C | C++ | Java
- Insertion in doubly linked list – C | C++ | Java
- Deletion in doubly linked list – C | C++ | Java
- Insertion and Deletion in doubly linked list – C | C++ | Java
- Insertion in the middle in a doubly linked list – C | C++ | Java
Login/Signup to comment