Java编程实现从尾到头打印链表代码实例

下面是Java编程实现从尾到头打印链表代码实例的完整攻略。

1. 思路分析

从尾到头打印链表,可以想到两种方式:

  • 反转链表,并正序打印
  • 从尾到头遍历链表,借助栈的先进后出特性

我们可以选择使用第二种方式来实现。具体步骤如下:

  1. 从头到尾遍历链表,将节点值依次入栈
  2. 遍历完整个链表后,依次弹出栈的元素,即可实现从尾到头打印链表

2. 代码实现

2.1 定义ListNode类

首先,我们需要定义一个链表节点的类,用来构建链表。

public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}

2.2 实现printListFromTailToHead方法

import java.util.ArrayList;
import java.util.Stack;

public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> list = new ArrayList<>();
        Stack<Integer> stack = new Stack<>();
        ListNode cur = listNode;
        // 遍历链表,将节点值入栈
        while (cur != null) {
            stack.push(cur.val);
            cur = cur.next;
        }
        // 依次弹出栈顶元素,添加到输出数组中
        while (!stack.empty()) {
            list.add(stack.pop());
        }
        return list;
    }
}

3. 测试示例

3.1 示例1:

ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);

Solution solution = new Solution();
ArrayList<Integer> list = solution.printListFromTailToHead(head);
System.out.println(list);

输出结果为:

[3, 2, 1]

3.2 示例2:

ListNode head = new ListNode(1);

Solution solution = new Solution();
ArrayList<Integer> list = solution.printListFromTailToHead(head);
System.out.println(list);

输出结果为:

[1]

至此,Java编程实现从尾到头打印链表的完整攻略就结束了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java编程实现从尾到头打印链表代码实例 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 守望先锋归来进不去游戏怎么办 闪退、死机重启解决方法

    当玩家尝试进入“守望先锋”时,有时候会遇到游戏开启不了、闪退、死机、重启等问题。这些问题通常是因为游戏客户端、电脑系统或外部因素导致的。为帮助玩家解决这些问题,本文将详细讲解“守望先锋归来进不去游戏怎么办 闪退、死机重启解决方法”。 问题一:游戏闪退或死机 如果你的游戏闪退或死机,以下措施可以尝试解决问题: 1. 检查电脑硬件配置 “守望先锋”是一款占用比较…

    other 2023年6月27日
    00
  • php笔记之:php数组相关函数的使用

    下面是完整攻略: 标题 PHP笔记之:PHP数组相关函数的使用 介绍 在PHP中,数组是一种非常常见的数据类型,在处理数据时使用频率极高。本篇笔记将介绍PHP中与数组相关的函数使用方法,其中包括常用的数组创建、遍历、筛选、排序等操作。 数组创建 创建索引数组 $indexArr = array("apple", "banana&…

    other 2023年6月25日
    00
  • 360安全卫士怎么使用开发者模式?

    下面是360安全卫士如何使用开发者模式的攻略: 什么是开发者模式? 开发者模式是360安全卫士提供的一种专门面向开发者的功能,通过启用开发者模式,可以方便地查看当前网页的一些技术细节,比如网页的加载速度、请求响应信息等。在开发网页、调试代码等场景下,使用开发者模式可以大幅提高工作效率。 如何启用开发者模式? 首先,打开360安全卫士,并进入任意一个网页。在网…

    other 2023年6月26日
    00
  • microsoftsynctoy文件同步工具

    Microsoft SyncToy 文件同步工具 文件同步工具在日常生活和工作中有着不可替代的作用。Microsoft SyncToy 是微软推出的一款能够进行文件同步和备份的工具。本文将详细介绍 Microsoft SyncToy 的使用方法和注意事项。 下载和安装 Microsoft SyncToy 是免费提供的,您可以在官方网站(https://www…

    其他 2023年3月29日
    00
  • Go语言的http/2服务器功能及客户端使用

    Go语言的http/2服务器功能及客户端使用 什么是HTTP/2 HTTP/2是HTTP协议的最新版本,它是先前HTTP/1.x版本的更新。HTTP/2在语法上很大程度上借鉴了SPDY的设计,是Google在2012年提出的一种协议,目标是提高现有HTTP/1.x版本的效率。 HTTP/2主要优势包括: 多路复用:通过在同一个连接上进行多个请求和响应而不是建…

    other 2023年6月25日
    00
  • 什么是人机协作?

    人机协作是指人类和机器协同工作以达成共同目标的过程。在这个过程中,人类和机器需要相互交流、协调,从而实现工作的高效、准确和可靠。下面是人机协作的完整攻略: 步骤一:明确目标 在人机协作的开始,需要明确协作的目标。这个目标需要明确、具体、可衡量,以便机器可以根据目标进行计算和决策。同时,需要确定人和机器的角色和职责,合理地分配协作任务。 步骤二:建立协作模型 …

    其他 2023年4月19日
    00
  • 荣耀v20开发者选项如何开启?荣耀v20开发者选项开启教程

    荣耀V20是一款华为荣耀旗下的智能手机,其开发者选项是为开发者提供了一些调试和性能测试的额外功能。下面是关于如何开启荣耀V20开发者选项的详细攻略。 步骤一:打开设置 首先打开荣耀V20智能手机的设置界面,这可以通过从桌面或应用程序抽屉中轻松访问的设置图标完成。 步骤二:查找“关于手机” 在清单中向下滚动,找到“系统”分类,点击进入后找到“关于手机”选项并点…

    other 2023年6月26日
    00
  • Android手机获取IP地址的两种方法

    Android手机获取IP地址的两种方法 在Android手机上获取IP地址有多种方法,下面将介绍其中两种常用的方法。 方法一:使用Java代码获取IP地址 可以使用Java代码来获取Android手机的IP地址。以下是一个示例代码: import android.content.Context; import android.net.wifi.WifiIn…

    other 2023年7月30日
    00
合作推广
合作推广
分享本页
返回顶部