美文网首页leetcode 剑指 offer
剑指 Offer 06. 从尾到头打印链表

剑指 Offer 06. 从尾到头打印链表

作者: 历十九喵喵喵 | 来源:发表于2020-07-16 00:36 被阅读0次

链表操作?栈?

题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

题解:比较容易想到的是 用 栈 (LinkedList)来存这个链表的结点,然后弹出 存到 数组里面,之后输出数组。

因为是逆序输出每个节点的值。符合栈先入后出的规则。

class Solution {

    LinkedList<Integer> stack = new LinkedList<Integer>();

    public int[] reversePrint(ListNode head) {

        while(head != null){

            stack.addLast(head.val);

            head = head.next;

        }

        int[] arrary = new int[stack.size()];//创建一个 int 数组

        for(int i=0;i<arrary.length;i++){

            arrary[i] = stack.removeLast();

        }

        return arrary;

    }

}

链表的操作:

传入链表的一个 头 

取值:head.val

下一个节点:head.next

栈的操作:

创建:LinckedList<Integer> stack = new LinkedList<Integer>();

入栈:stack.addLast();

出栈:stack.removeLast()

大小:stack.size()

数组的操作:

创建:int[] array = new int[stack.size()]

遍历:for 循环

输出:return array

相关文章

网友评论

    本文标题:剑指 Offer 06. 从尾到头打印链表

    本文链接:https://www.haomeiwen.com/subject/ktoshktx.html