【剑指Offer 06】从尾到头打印链表,Java解密。

LeetCode 剑指Offer 75道练习题

文章目录

    • 剑指Offer:从尾到头打印链表
    • 示例:
    • 限制:
    • 解题思路:

剑指Offer:从尾到头打印链表

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

示例:

输入:head = [1,3,2]
输出:[2,3,1]

限制:

0 <= 链表长度 <= 10000

解题思路:

解法一:

从尾到头打印链表,我们不难联想到栈(Stack),因为栈的特点是 先进后出(FILO)。
所以我们通过栈来实现链表的从尾到头打印的功能。

/**
 * 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> nodeStack = new Stack<ListNode>();

        ListNode temp = head;
        while (temp != null){
            nodeStack.push(temp);
            temp = temp.next;
        }

        int size = nodeStack.size();
        int[] result = new int[size];
        for (int i = 0; i < size; i++) {
            result[i] = nodeStack.pop().val;
        }

        return result;
    }
}

在这里插入图片描述

解法二:

通过递归的方式进行遍历。
我们在递归方法执行之后再去向全局集合中添加数据,这样也可以做到将数据从内部开始存储,然后在顺序遍历即可。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {

    private static final ArrayList<Integer> LIST = new ArrayList<>();

    public int[] reversePrint(ListNode head) {
        LIST.clear();
        resNode(head);

        int[] result = new int[LIST.size()];
        for (int i = 0; i < LIST.size(); i++) {
            result[i] = LIST.get(i);
        }
        return result;
    }

        public static void resNode(ListNode node) {
        if (node != null) {
            resNode(node.next);
            LIST.add(node.val);
        }
    }
}

在这里插入图片描述


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/62109.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023华数杯数学建模竞赛选题建议

提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;B<A<C 。 A题&#xff1a;隔热材料的结构优化控制研究 A题是数模类赛事很常见的物理类赛题&#xff0c;需要学习不少相关知识。 其中第一问需要建立平纹织物整体热导率与单根纤…

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机&#xff0c;不管是企业还是个人&#xff0c;我觉得都是比较合适的&#xff0c;而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装&#xff0c;直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

通过C语言设计的贪吃蛇游戏(控制台终端)

一、项目介绍 当前通过控制台终端实现一个贪吃蛇小游戏&#xff0c;实现游戏的绘制、更新、控制等功能。 二、实现效果 三、完整代码 下面贴出的代码在Windows系统上编译运行&#xff0c;需要使用conio.h头文件中的getch()函数来获取键盘输入&#xff0c;用于控制蛇的移动。…

word转pdf两种方式(免费+收费)

一、免费方式 优点&#xff1a;1、免费&#xff1b;2、在众多免费中挑选出的转换效果相对较好&#xff0c;并且不用像openOffice那样安装服务 缺点&#xff1a;1、对字体支持没有很好&#xff0c;需要安装字体库或者使用宋体&#xff08;对宋体支持很好&#xff09;2、对于使…

如何使用大模型处理生活繁琐的工作

如果每封电子邮件、每个带有订单、发票、投诉、录用请求或工作申请的 PDF 都可以翻译成机器可读的数据&#xff0c;会怎样&#xff1f;然后可以由 ERP / CRM / LMS / TMS 自动处理吗&#xff1f;无需编程特殊接口。 听起来很神奇&#xff1f;它确实有一些魔力。但最近已成为可…

PtahDAO:全球首个DAO治理资产信托计划的金融平台

金融科技是当今世界最具创新力和影响力的领域之一&#xff0c;区块链技术作为金融科技的核心驱动力&#xff0c;正在颠覆传统的金融模式&#xff0c;为全球用户提供更加普惠、便捷、安全的金融服务。在这个变革的浪潮中&#xff0c;PtahDAO&#xff08;普塔道&#xff09;作为全…

系列二、IOC基本概念和底层原理

一、IOC基本概念 控制反转&#xff1a;把对象创建和对象之间的调用过程&#xff0c;交给Spring进行管理&#xff1b;使用IOC的目的&#xff1a;减低耦合度&#xff1b; 二、IOC底层原理 xml解析 工厂模式 反射 2.1、图解IOC底层原理 # 第一步&#xff1a;xml配置文件&am…

K8s的详细介绍

1.编写yaml文件的方式 2.yaml里面的内容介绍 Pod实现机制&#xff1a;&#xff08;1&#xff09;共享网络&#xff08;2&#xff09;共享存储 共享网络:通过Pause容器&#xff0c;把其他业务容器加入到Pause容器里面&#xff0c;让所有业务容器在同一个名称空间中&#xff0c;…

【CHI】(六)独占访问

AMBA5 CHI Architecture Specification IssueF 1. overview 独占访问的原则是&#xff0c;执行独占序列的逻辑处理器&#xff08;LP&#xff09;执行以下操作&#xff1a; 对一个地址执行exclusive load。计算要存储到该位置的新值。对该地址进行exclusive store。 支持对可…

mysql-数据库-创建列表

一.创建列表 1..首先&#xff0c;进入mysql数据库 -->mysql -uroot -p 2. 其次&#xff0c;mysql默认的数据库类型为mydb&#xff0c;这时候&#xff0c;就得查看现在使用的类型 mysql> select database(); 3. 如果创建的类型不同&#xff0c;则使用create database …

Vue如何定义router-link的颜色样式

今天在使用Vue的时候碰到了想改样式却改不了的情况 <ul> <li>xxxxx</li> <li><router-link to"/wisdom" active-class"ative">xxxxx</router-link></li> <li><router-link to"/MyLogin" act…

【宝藏系列】几款好用的 Spring Boot 内置工具类

【宝藏系列】几款好用的 Spring Boot 内置工具类 文章目录 【宝藏系列】几款好用的 Spring Boot 内置工具类断言对象字符串集合文件资源IO 流反射AOP&#x1f349;文末推荐【深入浅出Java虚拟机】 断言 断言是一个逻辑判断&#xff0c;用于检查不应该发生的情况 Assert 关键字…

【深度学习】Transformer,Self-Attention,Multi-Head Attention

必读文章&#xff1a; https://blog.csdn.net/qq_37541097/article/details/117691873 论文名&#xff1a;Attention Is All You Need 文章目录 1、Self-Attention 自注意力机制2、Multi-Head Attention 1、Self-Attention 自注意力机制 Query&#xff08;Q&#xff09;表示当…

SpringBoot3 整合Prometheus + Grafana

通过Prometheus Grafana对线上应用进行观测、监控、预警… 健康状况【组件状态、存活状态】Health运行指标【cpu、内存、垃圾回收、吞吐量、响应成功率…】Metrics… 1. SpringBoot Actuator 1. 基本使用 1. 场景引入 <dependency><groupId>org.springframew…

【LeetCode】剑指 Offer Ⅱ 第2章:数组(8道题) -- Java Version

题库链接&#xff1a;https://leetcode.cn/problem-list/e8X3pBZi/ 题目解决方案剑指 Offer II 006. 排序数组中两个数字之和双指针&#xff08;异向&#xff09; ⭐剑指 Offer II 007. 数组中和为 0 的三个数排序 双指针&#xff08;异向&#xff09; ⭐剑指 Offer II 008. 和…

常见历史漏洞之Thinkphp

常见历史漏洞之Thinkphp 一、介绍二、Thinkphp历史漏洞三、Thinkphp特征发现四、批量漏洞检测五、漏洞总结六、5.0.23版本案例演示 一、介绍 Thinkphp是一种开源框架。是一个由国人开发的支持windows/Unix/Linux等服务器环境的轻量级PHP开发框架。很多cms就是基于thinkphp二次开…

java程序打包成exe在无java环境执行

最近写了个小工具&#xff0c;但是java写的&#xff0c;给朋友用的时候不能直接用&#xff0c;因此学习了一下java打包成exe。 众所周知&#xff0c;java需要jvm环境&#xff0c;所以打包的时候需要把稍微轻一点的jre打包进去。接下来是详细步骤。 java程序打包成jar 这个在…

vue2-vue实例挂载的过程

1、思考 new Vue()这个过程中究竟做了什么&#xff1f;过程中是如何完成数据的绑定&#xff0c;又是如何将数据渲染到视图的等等。 2、分析 首先找到vue的构造函数。 源码位置&#xff1a;/src/core/instance/index.js options是用户传递过来的配置项&#xff0c;如data、meth…

项目实战 — 消息队列(4){消息持久化}

目录 一、消息存储格式设计 &#x1f345; 1、queue_data.txt&#xff1a;保存消息的内容 &#x1f345; 2、queue_stat.txt&#xff1a;保存消息的统计信息 二、消息序列化 三、自定义异常类 四、创建MessageFileManger类 &#x1f345; 1、约定消息文件所在的目录和文件名…

高级web前端开发工程师岗位的具体内容概述(合集)

高级web前端开发工程师岗位的具体内容概述1 职责&#xff1a; 1、负责前端页面开发和维护&#xff0c;并根据需求优化产品性能、用户体验、交互效果及各种主流浏览器以及各类型移动客户端的兼容适配工作; 2、配合产品经理和UI设计师&#xff0c;通过各种前端技术手段&#xf…
最新文章