以下代码是以正向构建链表
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敬请指教!
解决方案 »
- List数组怎么转换成int[]数组?
- java如何遍历Map<String, ArrayList> map = new HashMap<String, ArrayList>();(在线等)
- 关于编写邮件发送程序,请大家帮忙!EmailAttachment
- 通过一个具体的年份和月份,想得到这个月份具体有几天。
- 如何用JAVA写个程序让本本自动休眠?
- 关于mikdirs问题?
- 一个简单的类,看不懂,麻烦讲解一下(300分,重信誉,必结贴)
- java连接oracle数据库?
- 万人同时在线的语音聊天系统
- 电脑是怎么显示正常时间的呢
- 有哪位朋友用active desktop calendar导入过阴历文件吗?
- 如何将class文件转换成java源文件
第二次循环开始first就 != null了,执行“last.link=newNode;last=newNode;”
第二次循环last.link=newNode相当于first.link=newNode