Delete Node from Linked List

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
public class DeleteNodeFromLinkedList {
 DeleteNodeFromLinkedList next;
 private int data;
 public DeleteNodeFromLinkedList() {
 }

 // Constructor
 DeleteNodeFromLinkedList(int data) {
  this.data = data;
 }

 public void setData(int data) { 
  this.data = data;
 }

 public int getData() {
  return this.data;
 }

 public DeleteNodeFromLinkedList getNext() {
  return this.next;
 }

 public void setNext(DeleteNodeFromLinkedList next) {
  this.next = next;
 }

 // 2: Length and traverse
 public int getLength(DeleteNodeFromLinkedList head) {
  int length = 0;
  DeleteNodeFromLinkedList current = head;
  while (current != null) {
   current = current.getNext();
   length++;
  }
  return length;
 }

 // 3: Inserting elements
 DeleteNodeFromLinkedList head;
 DeleteNodeFromLinkedList number;
 public DeleteNodeFromLinkedList insert(DeleteNodeFromLinkedList head, DeleteNodeFromLinkedList number,
   int position) {
  if (head == null) {
   return number;
  }
  int size1 = getLength(head);
  if (position < 1 || position > size1 + 1) {
   System.out.println("Error");
   return head;
  }
  if (position == 1) {
   number.setNext(head);
   return number;
  } else {
   DeleteNodeFromLinkedList current;
   DeleteNodeFromLinkedList previous = head;
   int count = 1;
   
   while (count < position - 1) {
    previous = previous.getNext();
    count++;
   }
   current = previous.getNext();
   previous.setNext(number);
   number.setNext(current);
  }
  return head;
 }

 // 4: DELETING a nODE
 public DeleteNodeFromLinkedList delete(DeleteNodeFromLinkedList head, int position) {
  if (head == null) {
   return null;
  }
  int size = getLength(head);
  if (position < 1 || position > size + 1) {
   System.out.println("Error");
   return head;
  }

  if (position == 1) {
   head = null;
   return null;
  } else {
   DeleteNodeFromLinkedList current;
   DeleteNodeFromLinkedList previous = head;
   int count = 1;
   while (count < position - 1) {
    previous = previous.getNext();
    count++;
   }
   current = previous.getNext();
   previous.setNext(current.getNext());
   current = null;
  }
  return head;
 }

 public void printList(DeleteNodeFromLinkedList linkedList1)
 {
  linkedList1 = head;
  while (linkedList1 != null)
  {
   System.out.print(linkedList1.data + " ");
   linkedList1 = linkedList1.next;
  }
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  DeleteNodeFromLinkedList linkedList1 = new DeleteNodeFromLinkedList(111);
  DeleteNodeFromLinkedList linkedList2 = new DeleteNodeFromLinkedList(222);
  linkedList1.setNext(linkedList2);
  DeleteNodeFromLinkedList linkedList3 = new DeleteNodeFromLinkedList(333);
  linkedList2.setNext(linkedList3);
  DeleteNodeFromLinkedList linkedList4 = new DeleteNodeFromLinkedList(444);
  linkedList3.setNext(linkedList4);
  DeleteNodeFromLinkedList test = new DeleteNodeFromLinkedList();
  int length = test.getLength(linkedList1);
  System.out.println("Length of give List is: " + length);

  // Element 555 is inserting****************

  DeleteNodeFromLinkedList linkedList5 = new DeleteNodeFromLinkedList(555);

  test.insert(linkedList1, linkedList5, 2);

  System.out.println("=========After INSERTING a node:============= ");
  length = test.getLength(linkedList1);

  System.out.println("Length after inserting a node: " + length);
  for (int i = 0; i < length; i++) {
   test.getNext();
  }

  DeleteNodeFromLinkedList test1 = new DeleteNodeFromLinkedList();
  System.out.println("=========After Deleting a node:============= ");
  test1.delete(linkedList1, 2);
  length = test1.getLength(linkedList1);
  System.out.println("Length after Deleting = " + length);
  System.out.println();
  System.out.print("==========Printing  linked list==========");
  DeleteNodeFromLinkedList test2 = new DeleteNodeFromLinkedList();
  System.out.println("\nPrinting Linked list: ");
  test2.printList(linkedList1);

 }
}
Output:
Length of give List is: 4
=========After INSERTING a node:=============
Length after inserting a node: 5
=========After Deleting a node:=============
Length after Deleting = 4

==========Printing  linked list==========
Printing Linked list:


No comments:

Post a Comment