Java 从尾到头输出链表节点值

来源:互联网 发布:杭州美工培训学校 编辑:程序博客网 时间:2024/05/22 03:44

        链表,我们知道只能从头到尾的输出,现在反过来了,从尾到头地输出,这样的“先进后出”的思想,与栈相似,即当访问一个结点时,就进栈,然后当访问链表完毕时,从栈中一个一个地出来。假设我们自己不写栈的数据结构,如何来做呢?还记得递归吗,它就有一个栈呢!所以用递归来访问结点。

        直接看代码吧:

        class Link{

private Node head;

public Link(){

   head=new Node(0);

head.next=null;

}

public void insert(int data){

    Node p=head;

    while(p.next!=null){

         p=p.next;

}

Node node=new Node(data);

node.next=null;

p.next=node;

}

public void print(){

             //正常地从头到尾地输出

/*

    Node p=head.next;

while(p!=null){

    System.out.print(p.data+" ");

p=p.next;

}

*/

Node p=head.next;

printback(p);

}

//递归输出

public void printback(Node head){

if(head==null)

return;

   else{

   printback(head.next);

System.out.print(head.data+" ");

}

}

class Node

{

        private int data;

       private Node next;

       public Node(int data){

              this.data=data;

       }

}

}
public class LinkDemo{

public static void main(String args[]){

        Link link=new Link();

link.insert(2);

link.insert(5);

link.insert(4);

link.insert(8);

link.print();


}

}

原创粉丝点击