Consider the following class definition for a Node class:
class Node<T> { private T data; private Node next; public Node(T d) {...
Consider the following class definition for a Node class:
class Node<T> {
private T data;
private Node next;
public Node(T d) { data = d; next = null; }
public Node(T d, Node n) { data = d; next = n; }
public T getData() { return data; }
public Node<T> getNext() { return next; }
public void setNext(Node<T> n) { next = n; }
}
Write a method countNodes() that when given a list
that starts at the node pointed by p, returns the number
of nodes in the list. Note that if p is null (empty
list), your method should return 0.
In the first example below the following Node client
code builds a linked list of two nodes, "A" and "B".
The countNodes() call on line 2 returns 2.
Node<String> l = new Node<>("A", new Node("B"));
int count = countNodes(l) // returns 2
This second example builds a list by hand. The countNodes()
call on line 6 returns a count of 3.
Node<String> a = new Node<>("A");
Node<String> b = new Node<>("B");
Node<String> c = new Node<>("C");
a.setNext(b);
b.setNext(c);
int count = countNodes(a);
Write the countNodes() method. Note that the examples
all use String for the type, but this is a generic
method that should work for any data type.
Your feedback will appear here when you check your answer.