Given a singly linked list, find the middle of the linked list. For example, if the given linked list is 1->2->3->4->5 then the output should be 3. If there are even nodes, then there would be two middle nodes, we need to print the second middle element. For example, if given linked list is 1 >2->3->4->5->6 then the output should be 4. Make the following adjustments to the class HWLinkedList code below Add the method addAtHead to the class below. The method should simply add a new element to the beginning of the linked list instead of the end. Add the method searchList to the class below. The method should return true if the user specified object is found and false otherwise. The method must be recursive. Add the remove method public class HWLinkedList<E> { private class Node<E> { private E data; Node<E> next; public Node(E data) { this.data = data; this.next = null; } } private Node<E> head; public HWLinkedList() { this.head = null; } private String toString (Node<E> head) { if (head == null) return””; return head.data.toString() + “\n” + toString(head.next); } public String toString() { return toString(head); } private void add(Node<E> head, E data) { if (head.next == null) head.next = new Node<E>(data); else add(head.next, data) } public void add(E data) { if (head == null) head = new Node<E>(data); else add(head, data); } }
Given a singly linked list, find the middle of the linked list. For example, if the given linked list is 1->2->3->4->5 then the output should be 3. If there are even nodes, then there would be two middle nodes, we need to print the second middle element. For example, if given linked list is 1 >2->3->4->5->6 then the output should be 4.
Make the following adjustments to the class HWLinkedList code below
- Add the method addAtHead to the class below. The method should simply add a new
element to the beginning of the linked list instead of the end.
- Add the method searchList to the class below. The method should return true if the user
specified object is found and false otherwise. The method must be recursive.
- Add the remove method
public class HWLinkedList<E>
{
private class Node<E>
{
private E data;
Node<E> next;
public Node(E data)
{
this.data = data;
this.next = null;
}
}
private Node<E> head;
public HWLinkedList()
{
this.head = null;
}
private String toString (Node<E> head)
{
if (head == null)
return””;
return head.data.toString() + “\n” + toString(head.next);
}
public String toString()
{
return toString(head);
}
private void add(Node<E> head, E data)
{
if (head.next == null)
head.next = new Node<E>(data);
else
add(head.next, data)
}
public void add(E data)
{
if (head == null)
head = new Node<E>(data);
else
add(head, data);
}
}
Unlock instant AI solutions
Tap the button
to generate a solution