Delete node in Doubly Linked List Java
- Get link
- X
- Other Apps
PROGRAM TO DELETE A DOUBLY LINKED LIST NODE AT A GIVEN POSITION
class Node { int data; Node next, prev;}class MAIN{ static Node head = null; // Function to delete a node // in a Doubly Linked List. // head_ref --> pointer to head node pointer. // del --> pointer to node to be deleted. static Node deleteNode(Node del) { // base case if (head == null || del == null) return null; // If node to be deleted is head node if (head == del) head = del.next; // Change next only if node to be // deleted is NOT the last node if (del.next != null) del.next.prev = del.prev; // Change prev only if node to be // deleted is NOT the first node if (del.prev != null) del.prev.next = del.next; del = null; return head; } // Function to delete the node at the // given position in the doubly linked list static void deleteNodeAtGivenPos(int n) { /* if list in NULL or invalid position is given */ if (head == null || n <= 0) return; Node current = head; int i; /* * traverse up to the node at position 'n' from the beginning */ for (i = 1; current != null && i < n; i++) { current = current.next; } // if 'n' is greater than the number of nodes // in the doubly linked list if (current == null) return; // delete the node pointed to by 'current' deleteNode(current); } // Function to insert a node // at the beginning of the Doubly Linked List static void push(int new_data) { // allocate node Node new_node = new Node(); // put in the data new_node.data = new_data; // since we are adding at the beginning, // prev is always NULL new_node.prev = null; // link the old list off the new node new_node.next = head; // change prev of head node to new node if (head != null) head.prev = new_node; // move the head to point to the new node head = new_node; } // Function to print nodes in a // given doubly linked list static void printList() { Node temp = head; if (temp == null) System.out.print("Doubly Linked list empty"); while (temp != null) { System.out.print(temp.data + " "); temp = temp.next; } System.out.println(); } // Driver code public static void main(String[] args) { // Create the doubly linked list: // 10<->8<->4<->2<->5 push(5); push(2); push(4); push(8); push(10); System.out.println("Doubly linked " +"list before deletion:"); printList(); int n = 2; // delete node at the given position 'n' deleteNodeAtGivenPos(n); System.out.println("Doubly linked " +"list after deletion:"); printList(); }}OUTPUT:
Doubly linked list before deletion: 10 8 4 2 5 Doubly linked list after deletion: 10 4 2 5
- Get link
- X
- Other Apps
Comments
Post a Comment