p != null
The condition of the while
tests if p
points to a Node
.
If so, the body of the loop uses that pointer.
p
is advanced through the list node by node.
Soon it reaches the last node, prints it out, and
p = p.getNext()
copies a null into p
.
This terminates the loop.
Here is the complete program, suitable for running. (The program presented here prints an extra comma at the end. You may wish to fix this.)
public class ChainMaker { public static void main ( String[] args ) { Node node0 = new Node( 223 ); Node node1 = new Node( 493 ); Node node2 = new Node( -47 ); Node node3 = new Node( 33 ); node0.setNext( node1 ); node1.setNext( node2 ); node2.setNext( node3 ); node3.setNext( null ); // not needed. Here as a reminder. // Traverse the Linked List in a loop Node p = node0; while ( p != null ) { System.out.print( p + ", " ); p = p.getNext(); } System.out.println( "\nEnd of List"); } }
Here is what the program prints:
C:\JavaSource> javac Node.java ChainMaker.java C:\JavaSource> java ChainMaker 223, 493, -47, 33, End of List C:\JavaSource>
Will the program work with a list of just one Node
?