Java怎么实现打印链表
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"Java怎么实现打印链表",在日常操作中,相信很多人在Java怎么实现打印链表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java怎么实现打印链表"
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网佳科技有限公司
互联网科技行业发展
互联网科技开发公司
互联网 的科技创新
奇酷互联网络科技
南京欣网互联网科技
广州互联网络科技有限公司
互联网 视角下的科技创新
深圳期待互联网科技
互联网科技博客
安控科技rtu产品工业互联网
西藏七维空间互联网科技有限公司
科技互联网的估值
互联网媒体平台算高科技产业
小米互联网科技园入驻
云南省自由互联网科技有限公司
从那以后互联网科技有限公司
陕西云淼互联网科技公司
易租星互联网科技有限公司
科技和互联网行业的特点
互联网科技公司简介
互联网科技官网
互联网的科技创新
奇酷互联网络科技
丰台科技园 互联网
郑州华宇互联网科技
互联网教育科技公司vipkid
承德科技产业互联网发展
浙江互联网科技研学营
高科技和互联网的现代国家