AlgoMooc
← 返回题库

P3900. 寻找链表的中间节点

简单通过率 74% · 提交 307 · 通过 226
链表双指针哈希表

小慕在项目中维护了一个L,现在需要编写程序输出L保存的数据。 如果有两个中间节点,则输出第二个中间节点保存的数据。 例如: 给定L为1→7→5,则输出应该为7; 给定L为1→2→3→4,则输出应该为3。

提示:带虚线的词点一下有通俗解释。

输入描述

每个输入包含1个测试用例。每个测试用例第一行给出链表首节点的地址、节点总个数为正整数N (N≤105)。 节点的地址是5位非负整数,NULL地址用-1表示。 接下来有N行,每行格式为: Address Data Next 其中Adress是节点地址,Data是该节点保存的 整数数据,Next是下一个节点的地址。

输出描述

对每个测试用例,在一行中输出L中间节点保存的数据。 如果有两个中间节点,则输出第二个中间节点保存的数据。 补充说明: 以确保输入的节点所构成的链表L不会成环,但会存在部分输入节点不属于链表L的情况

示例

示例 1

输入

00100 4
00000 4 -1
00100 1 12309
33218 3 00000
12309 2 33218

输出

3

说明:链表为 1->2->3->4,中间节点为3

示例 2

输入

10000 3
76892 7 12309
12309 5 -1
10000 1 76892

输出

7

说明:链表为 1->7->5,中间节点为7

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。