【LeetCode算法修炼+动画演示】【二叉树的路径和】——404. 左叶子之和

404. 左叶子之和

原题链接
计算给定二叉树的所有左叶子之和。

示例:

    3
   / \
  9  20
    /  \
   15   7

在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

要点

【LeetCode算法修炼指南】——112.路径总和、113.路径总和II 是类型相同的题目
不同的点在于这里的终止条件需要判断叶子节点是在左边。

递归

代码片段
func sumOfLeftLeaves(root *TreeNode) int {
    if root == nil {
        return 0
    }
    var sum = 0
    sumOfLeftLeavesHelper(root, &sum)
    return sum
}

func sumOfLeftLeavesHelper(root *TreeNode, sum *int) {
    if root == nil {
        return
    }
    if root.Left != nil && root.Left.Left == nil && root.Left.Right == nil {
        *sum = *sum + root.Left.Val
    }
    sumOfLeftLeavesHelper(root.Left, sum)
    sumOfLeftLeavesHelper(root.Right, sum)
}
代码解释

注意终止条件是要提前判断当前结点的左结点是否符合条件。


结尾

1.博客地址
2.源代码仓库

如果你在代码里看到了用 数字标记的注释 如 //1.xxx 这是我写代码的顺序,希望能给你一点启发。


😁😁😁制作动画过程不易,请大家顺手点赞收藏咯 谢谢~😁😁😁
有其它题目不理解的也可以一起学习,如有错误欢迎指出~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值