题目:404. 左叶子之和
遍历顺序:后续遍历
测试用例
思路
规则:🟦 递归栈(入栈→执行→出栈)| ✅ 执行动作 | 🔴 累加操作 | ans = 初始值 0
代码实现
# 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 sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
def dfs(node: Optional[TreeNode]) -> None:
if node is None:
return
dfs(node.left)
dfs(node.right)
left = node.left
if left and left.left is None and left.right is None:
nonlocal ans
ans += left.val
ans = 0
dfs(root)
return ans