在LinkedList java中打印第一个元素

时间:2014-09-14 00:26:06

标签: 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

3 个答案:

答案 0 :(得分:1)

从您的代码中,您似乎有意想跳过打印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的初始化,就像您现在拥有它一样,并且仍然进行其他更改。< / p>

答案 1 :(得分:1)

我假设您将元素插入列表的前面。 在while循环中交换语句。

void print(list *head)
{
    list *pcurrent = head;
    while(head != NULL)
    {
      System.out.println(pcurrent);
      pcurrent = pcurrent.next;
    }
}

答案 2 :(得分:0)

使用您的代码,您首先推进指针然后尝试打印该值。只需交换while循环中的语句即可。如果要打印整个列表,还应更改while循环的条件。

  public void display() {
        Link pcurrent = pfirst;
        while(pcurrent!= null) {
                System.out.println(pcurrent);
                pcurrent = pcurrent.next;
         }
   }