404.左叶子之和
说明
计算给定二叉树的所有左叶子之和。
示例
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
题解思路
遍历树,将没有孩子的左子树提取出来求和
代码实现
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def sumOfLeftLeaves(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.ans = 0
def dfs(node):
if not node:
return None
nodeleft = node.left
if nodeleft and not nodeleft.left and not nodeleft.right:
self.ans += nodeleft.val
dfs(node.left)
dfs(node.right)
dfs(root)
return self.ans
遇到的问题
刚开始解答的时候,总是报错
提示node没有left属性,仔细阅读代码,才发现是因为少考虑了根节点为空的情况