JZ-003-从尾到头打印链表

从尾到头打印链表

题目描述

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

题目链接: 从尾到头打印链表

代码

import java.util.ArrayList;

/**
 * 标题:
 * 题目描述
 * 
 * <p>
 * 题目链接
 * 
 */
public class Jz03 {

    /**
     * 非递归
     *
     * @param listNode
     * @return
     */
    public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> res = new ArrayList<>();
        for (; listNode != null; listNode = listNode.next) {
            res.add(0, listNode.val);
        }
        return res;
    }

    /**
     * 递归
     *
     * @param listNode
     * @return
     */
    public static ArrayList<Integer> printListFromTailToHead1(ListNode listNode) {
        ArrayList<Integer> res = new ArrayList<Integer>();
        if (listNode != null) {
            res.addAll(printListFromTailToHead1(listNode.next));
            res.add(listNode.val);
        }
        return res;
    }

    public static void main(String[] args) {
        ListNode node = new ListNode(67);
        ListNode node1 = new ListNode(0);
        ListNode node2 = new ListNode(24);
        ListNode node3 = new ListNode(58);
        node.next = node1;
        node1.next = node2;
        node2.next = node3;

        // 非递归
        System.out.println("非递归~~~");
        ArrayList<Integer> res = printListFromTailToHead(node);
        for (int val : res) {
            System.out.println(val);
        }

        // 递归
        System.out.println("递归~~~");
        ArrayList<Integer> res1 = printListFromTailToHead1(node);
        for (int val : res1) {
            System.out.println(val);
        }
    }
}

【每日寄语】 方向对了,就不怕路远。坚持不仅是一种品质,也是一种信念。

posted @   醉舞经阁  阅读(36)  评论(4编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示