# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int:
count =0
def dfs(node, just_started, sub_sum):
nonlocal count
if node == None:
return 0
sub_sum += node.val
if sub_sum == targetSum:
count +=1
if node.left:
dfs(node.left, False, sub_sum)
if node.right:
dfs(node.right, False, sub_sum)
if just_started:
if node.left:
dfs(node.left, True, 0)
if node.right:
dfs(node.right, True, 0)
dfs(root, True, 0)
return count
https://youtu.be/euUkM71eD6U?si=j3Mfu0twXdg30_ar
'LeetCode > LeetCode75' 카테고리의 다른 글
[LeetCode 75] Medium - 841. Keys and Rooms (0) | 2024.11.18 |
---|---|
[LeetCode 75] Medium - 1161. Maximum Level Sum of a Binary Tree (0) | 2024.11.17 |
[LeetCode 75] Medium - 1372. Longest ZigZag Path in a Binary Tree (0) | 2024.11.17 |
[LeetCode 75] Easy - 872. Leaf-Similar Trees (0) | 2024.11.15 |
[LeetCode 75] Medium - 2130. Maximum Twin Sum of a Linked List (0) | 2024.11.15 |