[编程题] 从尾到头打印链表
Posted jiyongjia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[编程题] 从尾到头打印链表相关的知识,希望对你有一定的参考价值。
从尾到头打印链表
题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
思路
把栈从头到尾的遍历,在遍历的时候放入栈中,栈使用(LinkedList结构模拟),然后在存完后把栈中的一个个元素pop出放入list中。
Java代码
import java.util.*;
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
//栈
Deque<Integer> stack = new LinkedList<Integer>();
//思路:把链表把按序放入栈中
ListNode headNode = listNode; //哨兵头节点
while(headNode!=null){
stack.push(headNode.val);
headNode = headNode.next;
}
//把栈中的信息拿出放入列表
while(!stack.isEmpty()){
arrayList.add(stack.pop());
}
//返回结果
return arrayList;
}
}
以上是关于[编程题] 从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章