컴퓨터 과학 전통에서 나무 는 맨 위에 뿌리 가 있고 맨 아래에 나뭇잎 입니다. 리프 노드에는 숫자가 표시되어 있습니다. 당신의 목표는 표시 된 특수 잎을 가져 와서 -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 층 깊이로만 그려져 있습니다.