Leetcode刷题Python404. 左叶子之和
Posted Better Bench
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python404. 左叶子之和相关的知识,希望对你有一定的参考价值。
1 题目
给定二叉树的根节点 root ,返回所有左叶子之和。
2 解析
一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整棵树进行遍历,当我们遍历到节点 \\textitnodenode 时,如果它的左子节点是一个叶子结点,那么就将它的左子节点的值累加计入答案。
3 Python实现
class Solution:
def sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
isLeafNode = lambda node:not node.left and not node.right
def dfs(r):
ans = 0
if r.left:
ans +=r.left.val if isLeafNode(r.left) else dfs(r.left)
if r.right and not isLeafNode(r.right):
ans+=dfs(r.right)
return ans
return dfs(root) if root else 0
以上是关于Leetcode刷题Python404. 左叶子之和的主要内容,如果未能解决你的问题,请参考以下文章