LeetCode404. 左叶子之和Golang版
1. 问题描述
计算给定二叉树的所有左叶子之和。

2. 思路
2.1. 递归
- 确定参数和返回值
func sumOfLeftLeaves(root *TreeNode) int
- 确定终止条件
if root == nil {
return 0
}
- 确定单层递归逻辑
leftValue := sumOfLeftLeaves(root.Left)
rightValue := sumOfLeftLeaves(root.Right)
midValue := 0
if root.Left != nil && root.Left.Left == nil && root.Left.Right == nil {
midValue = root.Left.Val
}
sum := leftValue + rightValue + midValue
return sum
3. 代码
3.1. 递归代码
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sumOfLeftLeaves(root *TreeNode) int {
if root == nil {
return 0
}
leftValue := sumOfLeftLeaves(root.Left)
rightValue := sumOfLeftLeaves(root.Right)
midValue := 0
if root.Left != nil && root.Left.Left == nil && root.Left.Right == nil {
midValue = root.Left.Val
}
sum := leftValue + rightValue + midValue
return sum
}
本文介绍了一个LeetCode上的经典问题——左叶子之和,并提供了详细的Golang实现方案。通过递归的方式,文章深入浅出地解析了如何计算二叉树中所有左叶子节点的值之和。
218

被折叠的 条评论
为什么被折叠?



