Menu
CoddyTech

Symmetric Tree

Kamu mendapatkan pohon biner yang disimpan dalam array tree dengan urutan level. Akar berada pada indeks 0, anak dari simpul pada indeks i berada pada 2*i+1 (kiri) dan 2*i+2 (kanan), -1 menandai posisi kosong, dan array dapat diakhiri dengan entri -1 tambahan. Kembalikan true jika pohon tersebut merupakan bayangan cermin dari dirinya sendiri terhadap garis vertikal yang melewati akar, dan false jika tidak. Bentuk dan nilainya harus sama-sama cocok.

Fungsi

isSymmetric(tree: integer-array) → boolean
treeinteger-array
pohon biner dalam urutan level, dengan -1 untuk posisi kosong
Mengembalikanboolean
true jika pohon mencerminkan dirinya sendiri, false jika tidak

Batasan

  • 1 ≤ tree.length ≤ 32767
  • Setiap tree[i] bernilai -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 = [1, 2, 2, 3, 4, 4, 3]
Output
true
Penjelasan
Lipat pohon itu menjadi dua bagian. Kedua 2 pada indeks 1 dan 2 bertemu, kedua 3 di bagian luar pada indeks 3 dan 6 bertemu, dan kedua 4 di bagian dalam pada indeks 4 dan 5 bertemu.
challenge icon

Pertanyaan lanjutan

Jika bentuknya saling mencerminkan, tetapi beberapa nilainya tidak, berapa nilai node paling sedikit yang harus kamu ubah agar tree menjadi simetris?

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

Tes #1

Tes #2

Tes #3

Argumen

tree = [1, 2, 2, 3, 4, 4, 3]

Output yang diharapkan

true