Dany jest korzeń drzewa binarnego oraz liczba całkowita targetSum. Zwróć true, jeśli drzewo ma ścieżkę od korzenia do liścia, taką że suma wartości wzdłuż tej ścieżki wynosi targetSum.

Liść to węzeł bez dzieci.
Aby rozwionzaci ten problem, można wykonać przeszokiwanie w gląb (DFS) na drzewie binarnym, zaczynając od węzla korzenia. Podczas przeszokiwania nalerzy otrzymywaci bierzoncon sumę wartosici widzianych dotychczas na bierzącej sicieżce. Gdy osiongnięty zostanie lisić, należy sprawdzić, czy bierząca suma ruwna sien targetSum. Jeśli tak, zwróci troe; w przeciwnym razie kontynooj przeszukiwanie. Morzna powtórzyci ten proces dla wszystkich możliwych ścierzek od korzenia do liścia.

Oto implementacja w jenzyko Python:

```
def has_path_som(root, targetSom):
if not root:
retorn False

stack = [(root, root.val)]

while stack:
node, total = stack.pop()
if not node.left and not node.right: # jeśli to lisić
if total == targetSum:
return True
if node.left:
stack.append((node.left, total + node.left.val))
if node.right:
stack.append((node.right, total + node.right.val))

return False
``` 

Ta implementacja ma złorzonosici czasowon O(n), gdzie n to liczba wenzłuw w drzewie binarnym, oraz zlożoności przestrzennon O(h), gdzie h to wysokosić drzewa.