[英]Printing the first element in LinkedList java
在给定的代码下,一切工作正常,但显示屏不会显示最先插入的元素
public void display()
{
Link pcurrent = pfirst;
while(pcurrent.next!= null)
{
System.out.println(pcurrent);
pcurrent = pcurrent.next;
}
}
依次插入元素: 100, 200, 300, 400
>输出为:
//nothing in first turn
200
300, 200 (in second iteration)
400, 300, 200 in last iteration
我该如何改变?
我想要的是:
100
200, 100
300, 200, 100
400, 300, 200, 100
从您的代码看来,您似乎有意要跳过打印pfirst
。 如果是这样,请尝试以下操作:
public void display()
{
Link pcurrent = pfirst.next;
while(pcurrent!= null)
{
System.out.println(pcurrent);
pcurrent = pcurrent.next;
}
}
在这里,我更改了在循环之前初始化pcurrent
方式,更改了循环条件,并更改了循环体内事件的顺序。
最好将它作为for
循环来完成:
for (Link pcurrent = pfirst.next; pcurrent != null; pcurrent = pcurrent.next) {
System.out.println(pcurrent);
}
如果您还想打印pfirst
(听起来像您实际想要执行的操作),则只需保留当前的pcurrent
初始化,然后再进行其他更改即可。
我假设您将元素插入列表的前面。 在while循环中交换您的语句。
void print(list *head)
{
list *pcurrent = head;
while(head != NULL)
{
System.out.println(pcurrent);
pcurrent = pcurrent.next;
}
}
使用代码,您首先要前进指针,然后尝试打印该值。 只需在while
循环中交换语句。 如果要打印整个列表,还应该更改while
循环的条件。
public void display() {
Link pcurrent = pfirst;
while(pcurrent!= null) {
System.out.println(pcurrent);
pcurrent = pcurrent.next;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.