From 2db54d6cb5735ede4e15d8151be2508eaa266da1 Mon Sep 17 00:00:00 2001 From: RanchCoder <52583285+RanchCoder@users.noreply.github.com> Date: Mon, 12 Oct 2020 15:16:01 +0530 Subject: [PATCH] Update CircularLinkedList.java remove function changed --- CircularLinkedList.java | 50 +++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/CircularLinkedList.java b/CircularLinkedList.java index e89cb36..701ab42 100644 --- a/CircularLinkedList.java +++ b/CircularLinkedList.java @@ -123,36 +123,42 @@ public boolean contains(int data){ // to remove the element from the list of specified data public int remove(int data){ - - if(tail == null) return Integer.MIN_VALUE; - CllNode temp = tail.getNext(); + if(isEmpty()){ + return Integer.MIN_VALUE; + } + CllNode atPos = tail.getNext(); CllNode previous = tail; - int element; - for(element = 0 ; element < length && (!(temp.getData() == data)) ; element++){ + for(int i = 0 ; i < length && (!(atPos.getData() == data)) ; i++ ){ previous = previous.getNext(); - temp = temp.getNext(); + atPos = atPos.getNext(); } - if(temp.getData() == data){ - - - if(tail == tail.getNext()){ - tail = null; - - } - else{ - if(temp == tail){ - tail = previous; - previous.setNext(previous.getNext().getNext()); + if(atPos.getData() == data){ + if(tail == tail.getNext()){ + tail = null; + } - + else{ + if(atPos == tail){ + + + previous.setNext(previous.getNext().getNext()); + tail = previous; + }else{ + previous.setNext(previous.getNext().getNext()); + + } + + + } + atPos.setNext(null); + length--; + return atPos.getData(); } - temp.setNext(null); - length--; - return temp.getData(); + else{ + return Integer.MIN_VALUE; } - else return Integer.MAX_VALUE; } public int size(){