Menu
CoddyTech

Path Sum

Kamu mendapatkan sebuah binary tree yang disimpan dalam array tree dengan urutan level, dan sebuah angka targetSum. Akar berada di indeks 0, anak dari node pada indeks i berada di 2*i+1 (kiri) dan 2*i+2 (kanan), -1 menandai posisi kosong, dan array mungkin diakhiri dengan entri -1 tambahan. Kembalikan true jika ada jalur dari akar ke bawah hingga daun yang nilainya jika dijumlahkan sama dengan targetSum, dan false jika tidak. Daun adalah node yang kedua posisi anaknya kosong.

Fungsi

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
pohon biner dalam urutan level, dengan -1 untuk posisi kosong
targetSuminteger
jumlah yang harus dicapai oleh jalur dari akar ke daun
Mengembalikanboolean
true jika ada jalur dari akar ke daun yang jumlahnya sama dengan targetSum, false jika tidak

Batasan

  • 1 ≤ tree.length ≤ 32767
  • Setiap tree[i] bernilai -1 atau suatu nilai dengan 0 ≤ tree[i] ≤ 1000.
  • tree[0] tidak pernah -1, jadi tree memiliki setidaknya satu node.
  • The array mungkin berakhir dengan entri -1 tambahan setelah simpul terakhir.
  • Kedua anak dari posisi kosong juga kosong, dan kedalamannya paling banyak 14.
  • 0 ≤ targetSum ≤ 15000

Contoh

Input
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Output
true
Penjelasan
Jalur 3, 9, 2 (indeks 0, 1, 4) berjumlah 14, dan 2 pada indeks 4 adalah daun.
challenge icon

Pertanyaan lanjutan

Bisakah kamu menghitung jumlah jalur yang totalnya targetSum jika jalur dapat dimulai dari simpul mana pun dan berakhir di simpul mana pun di bawahnya?

Reset kode
def hasPathSum(tree, targetSum):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

tree = [3, 9, 6, -1, 2, 1, 7]
targetSum = 14

Output yang diharapkan

true