Menu
CoddyTech

Invert Binary Tree

Kamu mendapatkan binary tree yang disimpan dalam array tree dengan urutan level. Root berada pada indeks 0, anak dari node pada indeks i berada pada 2*i+1 (kiri) dan 2*i+2 (kanan), -1 menandai tempat kosong, dan array mungkin diakhiri dengan entri -1 tambahan.

Balikkan tree: tukar anak kiri dan kanan setiap node agar seluruh tree menjadi bayangan cerminnya. Kembalikan tree yang sudah dibalik dalam bentuk yang sama, tanpa entri -1 di bagian akhir.

Fungsi

invertTree(tree: integer-array) → integer-array
treeinteger-array
pohon biner dalam urutan level, dengan -1 untuk posisi kosong
Mengembalikaninteger-array
pohon hasil pencerminan dalam urutan level, tanpa entri -1 di bagian akhir

Batasan

  • 1 ≤ tree.length ≤ 16383
  • Setiap tree[i] adalah -1 atau nilai dengan 0 ≤ tree[i] ≤ 1000.
  • tree[0] tidak pernah -1, jadi tree memiliki setidaknya satu node.
  • array tersebut mungkin diakhiri dengan entri -1 tambahan setelah node terakhir.
  • Kedua anak dari tempat kosong juga kosong, dan kedalamannya paling banyak 14.

Contoh

Input
tree = [5, 3, 8, 1, 4, -1, 9]
Output
[5, 8, 3, 9, -1, 4, 1]
Penjelasan
Anak-anak root 3 dan 8 bertukar tempat. Di bawahnya, 1 dan 4 yang berada di bawah 3 kembali sebagai 4 dan 1, dan 8, yang sebelumnya hanya memiliki anak kanan 9, kini memiliki anak itu di sebelah kirinya.
challenge icon

Pertanyaan lanjutan

Bagaimana cara memeriksa apakah sebuah pohon merupakan cerminan dirinya sendiri dengan menggunakan pasangan indeks yang sama, tetapi tanpa membuat salinan terbalik?

Reset kode
def invertTree(tree):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

tree = [5, 3, 8, 1, 4, -1, 9]

Output yang diharapkan

[5, 8, 3, 9, -1, 4, 1]