[Day28]-[二叉树] 左叶子之和
404. 左叶子之和
给定二叉树的根节点 root
,返回所有左叶子之和。
示例 1:
复制代码
示例 2:
复制代码
题解:
本题 一定要注意 是左叶子节点 而不是左节点 之和,叶子节点 是 node.Left = nil && node.Right=nil
复制代码
本文字数:414 字
阅读完需:约 1 分钟
给定二叉树的根节点 root
,返回所有左叶子之和。
示例 1:
输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
示例 2:
输入: root = [1]
输出: 0
题解:
本题 一定要注意 是左叶子节点 而不是左节点 之和,叶子节点 是 node.Left = nil && node.Right=nil
func TestSumOfLeftLeaves(t *testing.T) {
root := &TreeNode{
Val: 1,
Left: &TreeNode{
Val: 2,
},
Right: &TreeNode{
Val: 3,
Left: &TreeNode{
Val: 4,
},
Right: &TreeNode{
Val: 5,
},
},
}
var dfs func(root *TreeNode, isLeft bool) int
dfs = func(root *TreeNode, isLeft bool) int {
if root == nil {
return 0
}
if isLeft && root.Left == nil && root.Right == nil {
return root.Val
}
return dfs(root.Left, true) + dfs(root.Right, false)
}
t.Log(dfs(root, false))
}
Dead or Alive. 生存战斗是知识的源泉! 2018.11.08 加入
我是一名SRE哨兵,目前是好大夫基础架构部高级工程师。专注于 SRE,微服务、中间件的稳定性和可用性建设,整体负责好大夫服务治理云平台的设计和搭建!
促进软件开发及相关领域知识与创新的传播
评论