从尾到头打印链表

来源:互联网 发布:管家婆sql下载 编辑:程序博客网 时间:2024/05/22 14:14

从尾到头打印链表,由于单链表只有一个指针,而且是单向的访问。所以要用栈或者递归来实现从尾到头打印单链表。

用栈和递归实现如下所示:

package cn.edu.nwu.structs.linklist;import java.util.ArrayList;import java.util.Stack;/** * @author jcm * *时间 2016年8月22日 */public class PrintListFromTailToHead {/** * @author jcm *  从尾到头打印单链表 * @param head 头指针 */public static void printListFromTailToHead(Node head){if(head == null){return ;}Node currentNode = head;//创建一个栈Stack<Node> stack = new Stack<Node>();while(currentNode != null){//结点进栈stack.push(currentNode);currentNode = currentNode.next;}while(!stack.isEmpty()){//结点出栈System.out.print(stack.pop().data+" ");}}/**      * 递归实现单链表打印      * @param head      * @return      */      public static ArrayList<Integer> printListFromTailToHead2(Node head) {          ArrayList<Integer> list = new ArrayList<Integer>();          if(head != null){              if(head.next != null){                  list = printListFromTailToHead2(head.next);                  list.add((int)head.data);              }          }          return list;      }  }

0 0
原创粉丝点击