Sie erhalten einen Baum, der in der Tradition der Informatik die Wurzel oben und die Blätter unten hat. Die Blattknoten sind mit Zahlen beschriftet. Ihr Ziel ist es, das markierte Spezialblatt zu nehmen -1
und es als neue Wurzel nach oben zu bewegen.
[3, [[16], -1], [4]] --> [[[[4], 3], [16]]]
Sie können sich vorstellen, das Spezialblatt nach oben zu drehen und den Rest des Baumes hängen zu lassen. Halten Sie den Baum in der Ebene, während Sie ihn drehen, um die richtige Reihenfolge aller Zweige von links nach rechts zu erhalten.
Der neue Baum hat bis auf alle Blätter des ursprünglichen Baumes -1
.
Eingang:
Ein Baum, dessen Blätter eindeutige positive ganze Zahlen sind, mit Ausnahme eines Blattes von -1
. Die Wurzel des Baumes wird mindestens zwei Äste haben.
Die Eingabe wird als verschachtelte Liste [3, [[16], -1], [[4]]]
oder als Zeichenfolgendarstellung angegeben. Trennzeichen sind optional und stehen Ihnen frei, aber benachbarte Zahlen müssen getrennt werden.
Ausgabe:
Geben Sie den gespiegelten Baum im gleichen Format wie Ihre Eingabe aus oder drucken Sie ihn aus. Die Reihenfolge der Listeneinträge muss korrekt sein. Die direkte Änderung ist in Ordnung.
Wenn es sich bei Ihrer Eingabe / Ausgabe um einen Datentyp handelt, muss dieser standardmäßig im erforderlichen Format gedruckt werden. Built-Ins, die im Grunde genommen die Aufgabe für Sie erledigen, sind nicht erlaubt.
Testfälle:
>> [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
hat zwei Klammern mehr als die3
, ist aber nur 1 Schicht tiefer dargestellt.