从尾到头打印链表 5

利用栈,倒序都可以用栈解决

   

先将数据一个一个压入栈

   

然后再一个一个弹出

   

另外还有一种方法是利用递归,递归其实跟栈类似

   

方法一:

   

package printListReversed5;

   

import java.util.Stack;

   

public class PrintListReversed5 {

static void printListReversed(ListNode head) {

if (head != null) {

Stack<ListNode> stack = new Stack<>();

while (head != null) {

stack.push(head);

head = head.nextNode;

}

while (!stack.isEmpty()) {

System.out.println(stack.pop().data);

}

}

}

   

public static void main(String[] args) {

// TODO Auto-generated method stub

ListNode headNode = new ListNode();

headNode.data = 1;

headNode.nextNode = null;

ListNode l1 = new ListNode();

l1.data = 2;

ListNode l2 = new ListNode();

l2.data = 3;

headNode.nextNode = l1;

l1.nextNode = l2;

l2.nextNode = null;

printListReversed(headNode);

}

   

}

   

class ListNode {

int data;

ListNode nextNode;

}

   

方法二:

   

private static void printListReversed(ListNode headNode) {

if (headNode.nextNode!=null) {

printListReversed(headNode.nextNode);

}

System.out.println(headNode.data);

}

   

posted @ 2015-03-30 20:43  keedor  阅读(108)  评论(0编辑  收藏  举报