从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
解题思路:
1.从尾向前,可以想到的是栈这种数据结构,
2.以数组的来返回,我们想到的是将栈的元素转换到数组。
代码如下:
class Solution {
public int[] reversePrint(ListNode head) {
//1.定义一个栈
Stack<Integer> stack=new Stack<>();
ListNode cur=head;
//2.遍历链表
while (cur!=null){
stack.push(cur.val);
cur=cur.next;
}
//3.创建数组
int[] arr2=new int[stack.size()];
//4.把链表转数组
while (!stack.isEmpty()){
for (int i=0;i<arr2.length;i++){
arr2[i]=stack.pop();
}
}
return arr2;
}
}
如果喜欢可以关注下面这个微信公众号,每天给你分享更多干活。