考察知识:链表
描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]
0 <= 链表长度 <= 10000
示例1
示例2
输入:{67,0,24,58}
返回值:[58,24,0,67]
代码实现
import java.util.Stack;/*** 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) {// 压栈Stack<ListNode> stk = new Stack<ListNode>();ListNode temp = listNode;while(temp != null) {stk.push(temp);temp = temp.next;}int size = stk.size();ArrayList<Integer> arr = new ArrayList<>(size);for (int i = 0; i < size; i++) {arr.add(i, stk.pop().val);}return arr;//从后往前赋值// ListNode temp = listNode;// int count = 0;// while (temp != null) {// count++;// temp = temp.next;// }// temp = listNode;// ArrayList<Integer> arr = new ArrayList<>(count);// for (int i = count -1; i >= 0; i--) {// arr.add(i, temp.value);// temp = temp.next;// }// return arr;}}
