Anda diberi pohon, yang dalam tradisi ilmu komputer, memiliki akar di bagian atas dan daun di bagian bawah. Node daun diberi label dengan angka. Tujuan Anda adalah untuk mengambil daun khusus yang ditandai -1
dan memindahkannya ke atas untuk menjadi root baru.
[3, [[16], -1], [4]] --> [[[[4], 3], [16]]]
Anda dapat membayangkan memutar daun khusus ke atas dan membiarkan sisa pohon menggantungnya. Menyimpan pohon di pesawat sambil memutarnya untuk mendapatkan urutan kiri-ke-kanan yang benar dari semua cabang.
Pohon baru memiliki semua daun pohon asli kecuali untuk -1
.
Memasukkan:
Sebuah pohon yang daunnya bilangan bulat positif berbeda, kecuali satu daun -1
. Akar pohon akan memiliki setidaknya dua cabang yang terlepas.
Input diberikan sebagai daftar bersarang seperti [3, [[16], -1], [[4]]]
atau representasi stringnya. Pembatas adalah opsional dan terserah Anda, tetapi angka yang berdekatan perlu dipisahkan.
Keluaran:
Keluarkan atau cetak pohon terbalik dalam format yang sama dengan input Anda. Urutan entri daftar harus benar. Modifikasi di tempat baik-baik saja.
Jika input / output Anda adalah tipe data, itu harus salah satu yang mencetak dalam format yang diperlukan secara default. Built-in yang pada dasarnya melakukan tugas untuk Anda tidak diizinkan.
Kasus uji:
>> [3, [[16], -1], [4]]
[[[[4], 3], [16]]]
>> [2, -1]
[[2]]
>> [44, -1, 12]
[[12, 44]]
>> [[[[-1]]], [[[[4]]]]]
[[[[[[[[[4]]]]]]]]]
>> [[1, 2, 3], [4, -1, 6], [7, 8, 9]]
[[6, [[7, 8, 9], [1, 2, 3]], 4]]
>> [9, [8, [7, [6, -1, 4], 3], 2], 1]
[[4, [3, [2, [1, 9], 8], 7], 6]]
4
memiliki dua kurung lebih di sekitarnya dari3
, tetapi diagramed hanya 1 lapisan yang lebih dalam.