我似乎无法打印并添加到LinkedList,就像现在一样。
当我添加一个或两个节点时,它工作正常。不仅仅是它没有按预期工作。
例如:使用添加第一个
添加4和33→4->
但是当我再添加一个时,这就是我得到的:
2→3→3→
任何人都可以告诉我这种情况。我对编程很新。
public class LinkedListPractice{
public static void main(String[]args){
//add items to the LinkedList
GenericLinkedList<Integer> gLink = new GenericLinkedList<>();
gLink.addFirst(4);
gLink.addFirst(3);
gLink.addFirst(2);
gLink.addFirst(1);
gLink.printList();
}//main method
} //LinkedListPractice
class GenericLinkedList<E>{
int size; //represents number of nodes in the LinkedList
Node<E> head;
public GenericLinkedList(){
size = 0;
head = null;
} //GenericLinkedList no parameter constructor
//printList
public void printList(){
Node<E> current = head;
for(int i = 0; i < size; i++){
System.out.print(current.getData() + "->");
current = head.next;
} //for
} //printList
public void addFirst(E element){
Node<E> newNode = new Node<E>(element);
if(head == null){head = newNode;}
else{
newNode.next = head;
head = newNode;
}
size++;
} //addFirst
public boolean isEmpty(){
if(head == null){
return true;
}else
return false;
} //isEmpty
//inner node class
private static class Node<E>{
//private data fields
private E data;
private Node<E> next; //represents the next link in the LinkedList
public Node(E element){
data = element;
next = null;
} //Node class constructor
public E getData(){
return data;
} //getData
} //Node class
} //GenericLinkedList
答案 0 :(得分:0)
printList()中存在问题。 Head似乎永远不会更新,因此您总是在头部后打印节点,在这种情况下将是3。
更好的解决方案是在循环的每次迭代后更新当前的电流。