剑指 Offer 06. 从尾到头打印链表
Posted 暴躁的程序猿啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 06. 从尾到头打印链表相关的知识,希望对你有一定的参考价值。
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
遇到这种逆序返回的值 我们 首先可以想到使用栈来完成
要了解 栈的特性 先入后出 相当于一个弹夹 最先放进来的被压到了最后
那么我们就很好实现这道题了
class Solution
public int[] reversePrint(ListNode head)
//这种倒序输出的题 我们可以用栈的特性 栈是先入后出
Stack<Integer> stack = new Stack<Integer>();
//循环 当传入的 链表 不为null的时候我们把每个元素入栈
while(head!=null)
stack.push(head.val);
//指针 后移一位相当于元素往后挪动一个
head=head.next;
//得到栈的大小 因为如果在 for循环中使用size获取 会导致每一轮的size都会变化都是数据
int size=stack.size();
//创建一个 跟栈大小相同的数组 存放返回的数据
int[] temp=new int[size];
for(int i=0;i<size;i++)
//从栈中取出元素 放进数组中 因为栈是先进后出 所以天然形成了倒序
temp[i]=stack.pop();
//返回存放倒序元素的数组
return temp;
以上是关于剑指 Offer 06. 从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章