[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
}

你可能感兴趣的:([LeetCode By Go 39]404. Sum of Left Leaves)