Notice that you don't need an if statement because the value that
== computes is the value to return.
Here is the class so far:
// LinkedList.java
//
public class LinkedList
{
private Node headPtr = null;
// The constructor creates an empty list
public LinkedList()
{
headPtr = null;
}
// Determine if the List is empty
public boolean isEmpty()
{
return headPtr == null;
}
// Insert one Node containing data at the head
// of the list.
public void insertFirst( int data )
{
Node newFirst = new Node( data );
newFirst.setNext( headPtr );
headPtr = newFirst;
}
}
main() now inserts the first Node
public class LinkedListTester
{
public static void main( String[] args )
{
// create an empty linked list
LinkedList list = new LinkedList();
// insert the first Node
list.insertFirst( 5 );
}
}
The first time it is called, a one-node chain is created.
public class LinkedList
{
private Node headPtr = null;
.....
public void insertFirst( int data )
{
Node newFirst = new Node( data ); // 1
newFirst.setNext( headPtr ); // 2
headPtr = newFirst; // 3
}
.....
}
The statement at ( // 1 ) creates a new Node:
Then at ( // 2 ) the value in headPtr is copied into the new Node.
This copies a null from headPtr into the next member of the new Node
(which already has a null).
This does not change the picture, but later on this step is important.
Finally at ( // 3 ) the reference to the new node is copied into headPtr :
After all this, do we have a legitimate one-node linked list?