输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入: head = [1,3,2] 输出: [2,3,1] 限制:
0 <= 链表长度 <= 10000
public int[] reversePrint(ListNode head) {
// 利用栈来存储链表元素,由于是先进后出的数据结构,所以从头到尾存储链表元素,最后出栈时即为从尾到头打印链表元素
Stack<Integer> stack = new Stack<>();
// 入栈
while (head != null) {
stack.push(head.val);
head = head.next;
}
int[] ans = new int[stack.size()];
// 出栈并存储到数组中
for (int i = 0; i < ans.length; i++) {
ans[i] = stack.pop();
}
return ans;
}