输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
输入:head = [1,3,2] 输出:[2,3,1]
使用栈“先进先出”的特点,从头到尾将链表中的元素压入栈中。然后将栈中的元素依次弹出,弹出的次序就和原来链表中的次序相反。
java版
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public int[] reversePrint(ListNode head) { Stack<ListNode> data = new Stack<ListNode>(); ListNode cur = head; while(cur != null){ data.push(cur); cur = cur.next; } int len = data.size(); int[] output = new int[len]; for(int i = 0;i < len;i ++){ int temp = data.peek().val; data.pop(); output[i] = temp; } return output; } }