剑指offer学习笔记 | 从尾到头打印链表
作者:互联网
题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例
输入: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;
}
}
标签:head,ListNode,cur,offer,int,链表,从尾,data 来源: https://blog.csdn.net/qq_43539670/article/details/120598290