在我们平时的代码过程中,像在这篇如何直观地打印一棵树里提到的树一样,链表同样是我们经常遇到的一个数据结构,它非常的简单,但是Java语言并不能直接将一个链表打印出来,如果每次都写代码将其输出,或者用Debug工具查看的话,又有些麻烦,所以我就把打印链表的代码封装到一个工具类里来使用,在这里贴出来以供参考。

引言

在本文中所用的链表的结构,是leetcode中所用的链表的结构:

// ListNode.java
public class ListNode {public int val;public ListNode next;public ListNode(int x) {val = x;}
}

如何直观地打印一个链表

由于方法比较简单,就直接贴上代码:

// ListOperation.java
public class ListOperation {public static void show(ListNode head) {if (head == null) {System.out.println("EMPTY LIST!");return;}ListNode currNode = head;while (currNode.next != null) {System.out.print(currNode.val);System.out.print("->");currNode = currNode.next;}System.out.print(currNode.val);System.out.println();}
}

测试

测试用的代码,可以用作demo(实际所展示的的代码为ListOperation.show(node1)

public class ListOperationTest {public static void main(String[] args) {// 手动创建一个链表ListNode node1 = new ListNode(1);ListNode node2 = new ListNode(2);ListNode node3 = new ListNode(3);ListNode node4 = new ListNode(4);node1.next = node2;node2.next = node3;node3.next = node4;// 用我们的方法将上面创建的这个链表打印出来ListOperation.show(node1);}
}

测试结果:

1->2->3->4

相关文章

树相关:
如何直观地打印一棵树
如何直观地创建一棵树

链表相关:
如何通过数组或字符串直观地创建链表

如何直观地打印一个链表相关推荐

  1. 从尾到头打印一个链表

    个站求访 首页_码到城攻码到城攻分享但不限于IT技术经验技巧.软硬资源.所闻所见所领会等,站点提供移动阅读.文章搜索.在线留言.支付打赏.个人中心.免签支付等功能https://www.codecom ...

  2. php打印从1到1000,输入一个链表的头节点,从尾到头打印每个节点的值,利用PHP如何实现?...

    以下是我的实现代码(我只是打印出了每个节点): /** * Question:输入一个链表的头节点,反向打印链表节点 * Author:entner * time: 2017-7-21 * versi ...

  3. 算法练习day9——190327(“之” 字形打印矩阵、在行列都排好序的矩阵中找数、打印两个有序链表的公共部分、判断一个链表是否为回文结构)

    1."之" 字形打印矩阵 [题目] 给定一个矩阵matrix, 按照"之" 字形的方式打印这个矩阵, 例如: 1 2 3 4 5 6 7 8 9 10 11 1 ...

  4. 牛客网(剑指offer) 第三题 输入一个链表,从尾到头打印链表每个节点的值。

    //输入一个链表,从尾到头打印链表每个节点的值. //解题思路:遍历每一个节点  并将节点放入数组中 最后翻转数组 function printListFromTailToHead($head) {$ ...

  5. 数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构

    数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构 目录 打印两个有序链表公共部分 判断一个链表是否具有回文结构 1. 打印两个有序链表公共部分 1.问题描述 思路:Node1和N ...

  6. 面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

    题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路 使用栈依次存放输入的链表顺序的值,然后依次出栈便是链表的逆序. 代码 import java.util.ArrayList ...

  7. C语言经典例73-反向输出一个链表

    目录 1 题目 2 分析 2.1 方法1-原地逆置 2.2 方法2-递归 3 实现 3.1 实现1-原地逆置 3.2 实现2-递归 4 运行结果 1 题目 反向输出一个链表,链表结构为: typede ...

  8. C++实现链表逆序打印、链表反转

    //题目:C++实现链表逆序打印.链表反转 // 如何将链表逆序,取决于题目的要求.如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印. // 方法1:只 ...

  9. 数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表寻找合适位置插入 、开辟新链表实现舍弃原链表)等操作实现

    写在前面 不久前学习了数据结构线性表-数组-链表的相关知识,用C/C++语言实现了 单链表的系列相关操作 .见往期博客: 数据结构实验2_C语言_基于顺序表的非递减有序表的合并.线性表元素的增.删.改 ...

最新文章

  1. MySQL 表中添加 时间戳 字段
  2. linux a文本编辑大全,Linux sed 命令 - Linux文档编辑命令大全
  3. Android studio | From Zero To One ——TextView实现跑马灯效果及聊天室、文字直播间
  4. ES使用脚本进行局部更新的排错记录
  5. data在python_python-data-英语单词
  6. .netcore excel导出回车换行_必须掌握的回车键Enter应用技巧,100%干货
  7. 完美解决Python套接字编程时TCP断包与粘包问题
  8. python编程(ply库)
  9. OLAP-presto-大数据Week13-DAY-presto
  10. .net体系结构——C#高级编程第一章
  11. java线程间通信 实例_JAVA-初步认识-第十四章-线程间通信-示例
  12. 拓端tecdat:R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
  13. 假日活动的背后,酷开网络再造OTT营销的“价值高地”
  14. 多功能下拉分页选择插件SelectPage插件 http://www.jq22.com/jquery-info14227
  15. 访问请转到 http://hi.baidu.com/yuyu8848
  16. Zeppelin设置访问登录权限
  17. ORACLE ASSETS 11i资产管理
  18. 操作系统实验报告(二)银行家算法
  19. HDFS性能压测工具
  20. 【故障解决】ORA-06502错误解决

热门文章

  1. 插入u盘计算机未响应,U盘插入win7电脑没反应如何解决 Win7插入U盘没反应怎么办...
  2. 华为云服务器数据库连接失败
  3. CANopen COB-ID 使能PDO功能
  4. 深入分析QQ键盘保护技术
  5. 数据挖掘十大经典算法--CART: 分类与回归树
  6. Android跳转到拨打电话界面和拨打电话
  7. hahabet05-com:终于有人把云计算,大数据,人工智能讲明白了--哈哈电竞
  8. HyperLynx(二十八)板层噪声分析和SI/PI联合仿真实例
  9. 下载windows 聚焦锁屏的图片
  10. HDU多校第三场6608 Fansblog(米勒罗宾+威尔逊定理)