您会得到一棵树,按照计算机科学的传统,它的根在顶部,叶在底部。叶子节点用数字标记。您的目标是获取标记的特殊叶子-1
并将其向上移动为新的根。
[3, [[16], -1], [4]] --> [[[[4], 3], [16]]]
您可以想象将特殊的叶子旋转到顶部,然后让其余的树垂下来。旋转树时将树保持在平面上,以获取所有分支的正确的从左到右顺序。
新的树除的外,其余都有原始树的叶子-1
。
输入:
一棵树,其叶子是不同的正整数,除了的一片叶子-1
。树的根将至少有两个分支脱落。
输入以嵌套列表之类[3, [[16], -1], [[4]]]
或其字符串表示形式给出。分隔符是可选的,取决于您,但是相邻的数字需要分开。
输出:
以与输入相同的格式输出或打印翻转的树。列表条目的顺序必须正确。就地修改很好。
如果您的输入/输出是一种数据类型,则默认情况下它必须是一种以所需格式打印的数据。不允许使用基本上为您执行任务的内置程序。
测试用例:
>> [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
相比3
,的周围多了两个括号,但仅比图表深1层。