Java教程

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

这篇关于剑指offer学习笔记 | 从尾到头打印链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!