从尾到头打印链表

来源:互联网 发布:人脸识别算法有哪些 编辑:程序博客网 时间:2024/05/31 18:59

题目描述

输入一个链表,从尾到头打印链表每个节点的值。

数据结构:

/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/

解法1:

将链表反转,然后从头到尾遍历,改变了链表的结构。

解法2:

利用栈的结构,栈的特性是先进后出,利用栈可以十分简便的实现倒序输出。

解法3:

递归就是一种栈,在我们进行递归的时候可以先输出之后的节点,然后输出现在的节点,即可实现倒序。

代码如下:

import java.util.Stack;import java.util.ArrayList;public class Solution {    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {        Stack<Integer> stack = new Stack<>();        while (listNode != null) {            stack.push(listNode.val);            listNode = listNode.next;        }         ArrayList<Integer> list = new ArrayList<>();        while (!stack.isEmpty()) {            list.add(stack.pop());        }        return list;           }}


0 0
原创粉丝点击