以下代码是以正向构建链表
public class LinkedListNode
{
public int info;
public LinkedListNode link;
}public LinkedListNode buildListForward()
{
LinkedListNode first,newNode,last;
int num;
String inputLine;
StringTokenizer tokenizer; System.out.println("Enter integers ending with -999 in one line.");
inputLine=keyboard.readLine();
tokenizer=new StringTokenizer(inputLine);
num=Interger.parseInt(tokenizer.nextToken()); first=null; while(num != -999)
{
newNode=new LinkedListNode(); newNode.info=num;
newNode.link=null; if(first==null)
{
first=newNode;
last=newNode;
}
else
{
last.link=newNode;
last=newNode;
}
num=Integer.parseInt(tokenizer.nextToken());
} return first;
}
有一个地方不明白:就是当first != null 时,为何执行完last.link=newNode之后,first.link就不为null了,反而first.link被赋值了,如同first.link=newNode敬请指教!
public class LinkedListNode
{
public int info;
public LinkedListNode link;
}public LinkedListNode buildListForward()
{
LinkedListNode first,newNode,last;
int num;
String inputLine;
StringTokenizer tokenizer; System.out.println("Enter integers ending with -999 in one line.");
inputLine=keyboard.readLine();
tokenizer=new StringTokenizer(inputLine);
num=Interger.parseInt(tokenizer.nextToken()); first=null; while(num != -999)
{
newNode=new LinkedListNode(); newNode.info=num;
newNode.link=null; if(first==null)
{
first=newNode;
last=newNode;
}
else
{
last.link=newNode;
last=newNode;
}
num=Integer.parseInt(tokenizer.nextToken());
} return first;
}
有一个地方不明白:就是当first != null 时,为何执行完last.link=newNode之后,first.link就不为null了,反而first.link被赋值了,如同first.link=newNode敬请指教!
第二次循环开始first就 != null了,执行“last.link=newNode;last=newNode;”
第二次循环last.link=newNode相当于first.link=newNode