Can someone urgently help me with my java code? Ive been working on it for hours and its not working.
*examples of required output at the bottom*
code: public class CircularList
{
private ListNode head;
private ListNode tail;
private int size;
public CircularList()
{
head = tail = null;
size = 0;
}
public int size()
{
return size;
}
public boolean isEmpty()
{
return (size == 0);
}
public int first()
{
if (head != null) {
return head.getValue();
}
return -1;
}
public Integer last()
{
if (tail != null) {
return tail.getValue();
}
return -1;
}
public void addFirst(Integer value)
{
head = new ListNode(value, head);
if (tail == null) {
tail = head;
}
size++;
}
public void addLast(Integer value)
{
ListNode newTail = new ListNode(value, null);
if (tail != null) {
tail.setNext(newTail);
tail = newTail;
} else {
head = tail = newTail;
}
size++;
}
public void addAtPos(int pos, Integer value)
{
if (pos == 0) {
addFirst(value);
return;
}
if (pos <= 0 || pos > size) {
return;
}
if (pos == size) {
addLast(value);
return;
}
ListNode ptr = head;
for(int i=0; i = size) {
return retVal;
}
if (pos == 0) {
return removeFirst();
}
ListNode ptr = head;
for(int i=0; i
ptr = ptr.getNext();
}
retVal = ptr.getNext().getValue();
if (pos == size-1) {
tail = ptr;
tail.setNext(null);
} else {
ptr.setNext(ptr.getNext().getNext());
}
size--;
return retVal;
}
public int findNode(Integer find)
{
ListNode ptr = head;
for(int pos=0; pos
if (ptr.getValue() == find) {
return pos;
}
ptr = ptr.getNext();
}
return -1;
}
public void rotate()
{
addLast(removeFirst());
}
public String toString()
{
String output = "";
ListNode iter = head;
while(iter != null) {
output += String.format("%d ", iter.getValue());
iter = iter.getNext();
}
return output;
}
}
size = 6 first = 50 last = 60
50 20 10 40 30 60
removeFirst = 50
size = 5 first = 20 last = 60
20 10 40 30 60
removed = 30
size = 4 first = 20 last = 60
20 10 40 60
size = 4 first = 20 last = 60
20 10 40 60
found at -1
removed = -1
size = 4 first = 20 last = 60
20 10 40 60
size = 4 first = 10 last = 20
10 40 60 20