多语言展示
当前在线:1192今日阅读:155今日分享:35

详解如何获取链表中每个节点的下一个更大节点

题目:给定一条单向无环链表,实现一个算法,获取链表中每一个节点的下一个更大节点的值,将这些值组装为一个数组返回。注意:如果一个节点没有下一个更大的节点,则默认下一个更大节点的值为数字 0。
工具/原料
1

Eclipse

2

JDK1.8

方法/步骤
1

实现一个表示单向链表节点的静态内部类,通过该类对象可以构建一条单向链表结构。

2

编写一个工具函数,用于获取一条链表的长度。

3

实现算法,步骤如下:1. 获取链表长度,并通过该长度构造两个数组;2. 两个数组,一个用于存放链表中各个节点的值,一个是存放结果的数组;3. 创建一个栈,用于存放目前未处理的链表节点的索引值;4. 遍历链表,和栈顶索引对应节点值比较,并填充结果数组,该节点入栈;5. 如果栈不空,则栈中索引对应节点在链表中不存在下一个更大节点。

5

编写本地测试主方法。

6

运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。

7

平台提交算法。

注意事项

通过一个数组记录链表各个节点的值,便于算法后面通过索引直接获取某个节点的值。

推荐信息