Here are the class definitions of Node and List that impleme
Here are the class definitions of Node and List that implement a linked list. class Node {private Node next; private int key; Node (Node nxt, int keyValue);//constructor Node getNext(); int getKey(); void put(Next Node nxt);} class List {//assume the class does not use a dummy Node private Node head; List ();//constructor boolean exists(int ky);//returns true if v is in the list void insertAtHead(int ky);//inserts at the beginning of the list void insertAtTail(int ky);//inserts at the end of the list int removeFromHead ();//Returns -1 if the list is empty void delete(int ky)//delete the element or do nothing if v doesn\'t exist int removesmallest ();//removes the Node containing the smallest key//and returns that key. Returns -1 if the list is empty.//could be duplicate entries, so remove the first//int remove Largest ();//removes the Node containing the largest key//and returns that key. Returns -1 if the list is empty.//Could be duplicate entries, so remove the first int maxElement ();//calls the private version, doesn\'t delete the Node int sum ();//calls the private version int length ();//calls the private version private int maxElement (Node x); private int sum (Node x); private int length Node x);}
Solution
private Node recursiveDelete(int ky,Node n)
{
Node k=null;
if(n==null)return null;
if(n!=null)
{
if(n.key==ky)//checking for key
{
if(n.next!=null)n=n.next;
else n=null;
return n;//if found returninng..
}
c=n;
k=recursiveDelete(ky,n.next);//recursive calling
n.next = k;
return n;
}
}
public void recursiveDelete(int ky)
{
//calling private function...this..current object(instance)
this.head=recursiveDelete(ky,this.head);
}
