/* ListNode.java */
package sortedlist;
/**
* ListNode is a class used internally by the List class. Each node in a
* List is represented as a ListNode, with an item and a reference to the
* next node in the list.
**/
class ListNode {
Keyable item;
ListNode next;
/**
* Constructs a ListNode with item obj and next null.
* @param obj will be the item in the node.
**/
ListNode(Keyable obj) {
item = obj;
next = null;
}
/**
* Constructs a ListNode with item obj and next n.
* @param obj will be the item in the node.
* @param n will be the next ListNode in the list.
**/
ListNode(Keyable obj, ListNode n) {
item = obj;
next = n;
}
/**
* ptrTo() returns a reference to the node at the given position. If
* position < 1 or position > the number of nodes in the list, returns
* null. Assumes the list is acyclic.
* @return a reference to the node at position "position".
*/
public ListNode ptrTo(int position) {
if (position < 1) {
return null;
} else if (position == 1) {
return this;
} else if (next == null) {
return null;
} else {
return next.ptrTo(position - 1);
}
}
}