我如何纠正我的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
。
答案 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);