目录

0404:左叶子之和

力扣第 404 题

题目

给定二叉树的根节点 root ,返回所有左叶子之和。

示例 1:

输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

示例 2:

输入: root = [1]
输出: 0

提示:

  • 节点数在 [1, 1000] 范围内
  • -1000 <= Node.val <= 1000

分析

遍历时标记节点是左孩子还是右孩子即可。

解答

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution:
    def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
        res = 0
        sk = [(root,1)]
        while sk:
            u,c = sk.pop()
            if u:
                if c==0 and not u.left and not u.right:
                    res += u.val
                sk.extend([(u.left,0),(u.right,1)])
        return res

43 ms