リンクされたリストの中間ノードを見つける
トピック
単方向リスト L が与えられたとき、L の中間ノードに格納されたデータを出力するプログラムを作成してください。中間ノードが 2 つある場合は、2 つ目の中間ノードで保存されたデータを出力します。
例: L が である場合1→7→5
、出力は である必要があります7
; L である場合1→2→3→4
、出力は である必要があります3
。
入力
各入力には 11 個のテスト ケースが含まれます。
各テスト ケースの 11 行目は、リンク リストの最初のノードのアドレスを示し、ノードの総数は正の整数 N (N≤105) です。ノードのアドレスは 55 ビットの非負整数で、NULL
アドレスは で−1
表されます。
次に N 行あり、各行の形式は次のとおりです。
Address Data Next
Address
はノードアドレス、Data
はノードが保存した整数データ (0≦Data≦108)、 はNext
次のノードのアドレスです。
出力
テスト ケースごとに、L 個の中間ノードによって保存されたデータを 1 行で出力します。中間ノードが 2 つある場合は、2 つ目の中間ノードで保存されたデータを出力します。
述べる
入力ノードによって形成される連結リスト L がループを形成しないことが保証されていますが、一部の入力ノードが連結リスト L に属していない場合があります。
例1
入力
00100 4
00000 4 -1
00100 1 12309
33218 3 00000
12309 2 33218
</