问题 G: 链表结点的物理顺序与逻辑顺序

问题 G: 链表结点的物理顺序与逻辑顺序

时间限制: 1 Sec  内存限制: 128 MB
提交: 197  解决: 135
[提交][状态][讨论版][命题人:]

题目描述

已知一个单向链表各结点在存储器中的物理顺序,以及各结点之间的指向关系,要求输出该链表各结点的逻辑顺序。

如图所示的链表,共有6个结点,按这6个结点在存储器中的物理顺序依次编号为1~6。第1个结点的指针域为p4,表示它指向第4个结点。在该图中,符号“∧”表示空指针。

因此,这个链表6个结点的逻辑顺序为:6->1->4->2->5->3。

输入

输入文件中包含多个测试数据。每个测试数据描述了一个单向链表:第一行为一个自然数n,5≤n≤9,表示有n个结点;接下来有n行,第i+1行如果为pj,则表示第i个结点的指针域指向第j个结点,如果指针域为null,则表示空指针。输入文件最后一行为0,表示输入结束。

输入数据确保每个测试数据能表示一个合理的单向链表。

输出

对输入文件中的每个测试数据,输出n个结点的逻辑顺序,相邻两个结点之间用符号“->”连接。

样例输入

6
p4
p5
null
p2
p3
p1
0

样例输出

6->1->4->2->5->3

提示

[提交][状态]