其他分享
首页 > 其他分享> > 剑指offer学习笔记 | 从尾到头打印链表

剑指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