在java中打印链表

时间:2017-06-14 08:15:30

标签: java linked-list

我无法打印链表,它无限打印4作为值。这段代码出了什么问题?在下面的代码中,我试图在添加每个元素后实现单链表,而我试图打印它时无限打印4作为输出任何想法为什么?

  import java.util.*;
    class Linkedit{
        static class Node{
            static Node next;
            int data;
            Node(int t){
                data=t;
                next=null;
            }
        }
        Node head=null;
        public void insert(int data){
            Node k=new Node(data);
            k.next=head;
            head=k;
        }
        public void show(){
            Node a=head;
            while(a!=null){
                System.out.println(a.data);
                a=a.next;
            }
        }
        public static void main(String args[]){
            Linkedit g=new Linkedit();
            g.insert(3);
            g.insert(4);
            g.insert(5);
            g.show();
        }
    }

1 个答案:

答案 0 :(得分:4)

问题在于:

static Node next;

next成员不应该是静态的,因为每个Node应该有不同的next值。

更改

    static class Node {
        static Node next;
        int data;
        Node(int t){
            data=t;
            next=null;
        }
    }

    static class Node {
        Node next;
        int data;
        Node(int t){
            data=t;
            next=null;
        }
    }

解决您的问题。