Menu
CoddyTech

Path Sum

Você recebe uma árvore binária armazenada no array tree em ordem por nível e um número targetSum. A raiz fica no índice 0, os filhos do nó no índice i ficam em 2*i+1 (esquerdo) e 2*i+2 (direito), -1 marca uma posição vazia, e o array pode terminar com entradas extras de -1. Retorne true se algum caminho da raiz até uma folha tiver valores cuja soma seja igual a targetSum, e false caso contrário. Uma folha é um nó sem filhos: as posições de ambos os seus filhos estão vazias.

Função

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
a árvore binária em ordem por nível, com -1 para uma posição vazia
targetSuminteger
o total que um caminho da raiz até a folha deve atingir
Retornaboolean
verdadeiro se algum caminho da raiz até uma folha soma targetSum, falso caso contrário

Restrições

  • 1 ≤ tree.length ≤ 32767
  • Cada tree[i] é -1 ou um valor com 0 ≤ tree[i] ≤ 1000.
  • tree[0] nunca é -1, então a árvore tem pelo menos um nó.
  • O array pode terminar com entradas -1 extras após o último nó.
  • Ambos os filhos de um espaço vazio também estão vazios, e a profundidade é no máximo 14.
  • 0 ≤ targetSum ≤ 15000

Exemplos

Entrada
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Saída
true
Explicação
O caminho 3, 9, 2 (índices 0, 1, 4) soma 14, e o 2 no índice 4 é uma folha.

lock icon+14 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue contar os caminhos cuja soma é igual a targetSum, quando um caminho pode começar em qualquer nó e terminar em qualquer nó abaixo dele, e não apenas ir da raiz até uma folha?

Redefinir código
def hasPathSum(tree, targetSum):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

true