调用addfirst方法后如何打印整个列表?

时间:2019-10-05 01:56:08

标签: java

我如何纠正我的addFirst方法,以及如何使我的removeFirst方法正常工作,因为它不会被删除?我应该如何实施?

public class LinkedList{
    public static  void main(String[] args) {
        LinkedList l = new LinkedList();
        l.addFirst("c");
        //l.removeFirst("m");
        l.addFirst("b");
        System.out.println(l.first.data);
        System.out.println(l.first.data);
    }
    public Node first;
    static class Node {
        String data;
        Node next;
    }
    private void addFirst(String s){
        Node newNode = new Node();
        newNode.data=s;
        newNode.next=first;
        first=  newNode;
    }
    private void removeFirst(String s){
        //Node n1 = new Node();
        first.next = null;
    }
}

我希望结果是:

b    
c

但仅打印b

2 个答案:

答案 0 :(得分:0)

通过除main之外的每个函数返回链表。 添加或删除节点后,您必须在主函数中返回链表,然后您可以打印整个链表

答案 1 :(得分:0)

您两次打印相同的值,请尝试以下操作:

System.out.println(l.first.next.data);

在链接列表类中,第一个(或头个)节点将包含下一个节点,因此您必须先调用第一个节点,然后再调用下一个节点数据。

示例:

LinkedList l = new LinkedList();
l.addFirst("c");
l.addFirst("b");
l.addFirst("z");
System.out.println(l.first.data);
System.out.println(l.first.next.data);
System.out.println(l.first.next.next.data);