Java怎么实现打印链表
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"Java怎么实现打印链表",在日常操作中,相信很多人在Java怎么实现打印链表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java怎么实现打印链表"
千家信息网最后更新 2025年12月01日Java怎么实现打印链表
这篇文章主要介绍"Java怎么实现打印链表",在日常操作中,相信很多人在Java怎么实现打印链表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java怎么实现打印链表"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
题目
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
分析
仅仅看这个题目,有点不知道怎么下手的感觉,意思明白,但是怎么做呢?首先我们的准备一个链表,题目给了提示,我们创建一个ListNode 类,内容如下
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
这样就可以用来表示一个链表了,比如我们创建一个 1 3 5 8 的链表
ListNode listNode=new ListNode(1);
listNode.next=new ListNode(3);
listNode.next.next=new ListNode(5);
listNode.next.next.next=new ListNode(8);
好了,准备工作算是做好了,我们接下来看看题目,要将链表的元素从头到尾装到list 中,这里有两种思路。栈的后进先出原理,先将链表数据压入栈中,然后依次从栈中取出数据存入到list 中。还有一种就是使用递归的方法,找到链表的最后一个节点,依次向前,我这里采用的就是递归的方法。
解法
使用递归,我们使用递归的方法,找到链表中的最后一个元素,将其加入到list 中。
public static ArrayList printListFromTailToHead(ListNode listNode) {
ArrayList list=new ArrayList<>();
if(listNode!=null){
add(list,listNode);
}
return list;
}
public static void add(ArrayList list,ListNode listNode){
//如果没有后续节点就将元素加入到list 中,如果有就递归找后续节点
if(listNode.next!=null){
add(list,listNode.next);
}
list.add(listNode.val);
}
源代码
package com.quellanan.algorithm.day2;
import java.util.ArrayList;
/**
* @ClassName Solution
* @Description DOTO
* @Author zhulinfeng
* @Date 2020/1/30 11:38
* @Version 1.0
*/
public class Solution {
public static void main(String[] args) {
ListNode listNode=new ListNode(1);
listNode.next=new ListNode(3);
listNode.next.next=new ListNode(5);
listNode.next.next.next=new ListNode(8);
ArrayList list=printListFromTailToHead(listNode);
while(listNode.next!=null){
System.out.print(listNode.val+"\t");
listNode=listNode.next;
}
System.out.println(listNode.val);
for(int i=0;i System.out.print(list.get(i)+"\t");
}
}
public static ArrayList printListFromTailToHead(ListNode listNode) {
ArrayList list=new ArrayList<>();
if(listNode!=null){
add(list,listNode);
}
return list;
}
public static void add(ArrayList list,ListNode listNode){
if(listNode.next!=null){
add(list,listNode.next);
}
list.add(listNode.val);
}
}
测试
到此,关于"Java怎么实现打印链表"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
递归
方法
题目
学习
元素
节点
接下来
就是
数据
更多
准备
帮助
实用
从头到尾
从头
内容
原理
后进
思路
意思
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于数据库的职业规划
阿里云云服务器如何备份数据库
广西雅客方升网络技术有限公司
火车站无线网络安全吗
中搜网络技术公司
中国治理数据库
老薛主机数据库链接地址
大话西游免费版热门服务器
群晖服务器查显示硬盘不兼容
淮北保险软件开发
为人民币服务器
如何加入软件开发
北京睿智软件开发有限公
电脑软件开发f
海南省ipfs云服务器
psid数据库
贷超软件开发
北京美瑞恒信网络技术
数据库表的主键可以有几个
cmdb 数据库设计
微米网络技术服务
软件开发 流程图 软件
软件开发费用谈判表
ark怎么创建服务器
阿里巴巴软件开发相关公司
探探的数据库
湖南有软件开发专业的大专
企业技术资料管理服务器
数据库访问独占权
嵌入式结构软件开发