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

链表操作?栈?

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

题解:比较容易想到的是 用 栈 (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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。