[LeetCode By Go 39]404. Sum of Left Leaves

题目

Find the sum of all left leaves in a given binary tree.

Example:

    3
   / \
  9  20
    /  \
   15   7

There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

解题思路

遍历二叉树(这里使用前序,其他遍历方式也可),如果是叶子节点(左右子树都为空),且是左子树(上层参数传递),则累加求值
注意
sum为全局变量,每次计算前需要初始化该值

代码

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func PreOrderTravel(t *TreeNode, left bool) {
    if nil == t {
        return
    }
    if left && nil == t.Left && nil == t.Right {
        sum += t.Val
    }
    PreOrderTravel(t.Left, true)
    PreOrderTravel(t.Right, false)

}
var sum int
func sumOfLeftLeaves(root *TreeNode) int {
    sum = 0
    PreOrderTravel(root, false)

    return sum
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容