题目描述
输入一个链表,从尾到头打印链表每个节点的值。
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
思路:
由于链表是从头结点一直到尾结点的,而我们需要的是从尾到头,也就是说先遍历的后打印,和栈的后进先出相吻合,因此采用栈结构对数据进行存放。
代码:
import java.util.ArrayList;
import java.util.Stack;
public class Test {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list =new ArrayList<Integer>();
if(listNode==null)
return list;
Stack<Integer> stack=new Stack<Integer>();
while(listNode!=null){
stack.push(listNode.val);
listNode=listNode.next;
}
while(!stack.isEmpty())
{
list.add(stack.pop());
}
return list;
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}