java - 如何逆序打印LinkedList Node对象

标签 java arraylist linked-list nodes generic-programming

在下面的方法 reverse() 中,我想访问 Node 的元素并将它们添加到 ArrayList 中。之后,使用循环,它将以相反的顺序打印。

public void reverse(){

            Node e = head;
            ArrayList<E> s = new ArrayList<E>();
            while(e!=null){

                s.add(e.element);
                e= e.next;
            }
            for (int i = count-1; i >= 0; i--) {
                System.out.print (""+s.get(i));
            }
            System.out.println("");

    }

但是,s.add(e.element) ; 给出了错误。 这是 Node 类,

public class Node<E> {
    E element;
    Node<E> next;

    public Node(E element){
        this.element=element;
        next =null;
    }
}

和LinkedList类

     public class LinkedListStack<E> implements Stack<E>{
            Node<E> head;
            Node<E> tail;
            int count=-1;

            public LinkedListStack() {
               head=tail=null;
            }

     public void push(E element) {
            Node<E> newNode = new Node<>(element);
            if(count==-1){
                head=tail=newNode;
                count++;
            }
            else{
                newNode.next=head;
                head = newNode;
            }
            count++;
        }
             public void reverse(){

                Node e = head;
                ArrayList<E> s = new ArrayList<E>();
                while(e!=null){

                    s.add(e.element);
                    e= e.next;
                }
                for (int i = count-1; i > 1; i--) {
                    System.out.print (""+s.get(i));
                }
                System.out.println("");

            }
}

如果有人解释添加对象的错误,我将不胜感激

ArrayList 中元素的详细信息。

最佳答案

您正在使用通用 Node 类型作为原始类型:

Node e = head;

应该是

Node<E> e = head;

关于java - 如何逆序打印LinkedList Node对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719599/

相关文章:

java - 在android中的BroadcastReceiver类的onReceive方法中访问ArrayList项目

java - 对链表进行排序

java - 从 Java 打开 TortoiseSVN GUI

java - 使用多线程并行运行多个测试

java - 如何使用 freemarker 分割 hashmap 的值?

java - 按单个数组上的 ArrayList 索引(行)对三个数组进行排序

c - LinkedList在C中删除结束

c++ - 如何将二叉搜索树转换为双向链表?

javascript - 将 jpeg 图像转换为正确的字节数组时遇到问题

java - 如何从 MIDI 序列获取音符开/关消息?