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

解題思路

遍歷二叉樹(這里使用前序,其他遍歷方式也可),如果是葉子節(jié)點(左右子樹都為空),且是左子樹(上層參數(shù)傳遞),則累加求值
注意
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
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容