题目描述
输入一个链表,从尾到头打印链表每个节点的值。
思路:堆栈是一种后进先出的线性表。仅允许在栈顶一端进行插入和删除运算。这样我们只要将链表里面的元素按顺序压栈,弹栈就可以得到反向输出的链表。
链表的定义:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
实现如下:
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<Integer>();
while (listNode != null) {
stack.push(listNode.val);
listNode = listNode.next;
}
ArrayList<Integer> list = new ArrayList<Integer>();
while (!stack.isEmpty()) {
list.add(stack.pop());
}
return list;
}
转载请注明原文地址: https://ju.6miu.com/read-4044.html