1302. 层数最深叶子节点的和
给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。
示例1
输入: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
输出: 15
示例2
输入: root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
输出: 19
思路
解法
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func deepestLeavesSum(root *TreeNode) int {
maxHeight:=0
sum:=0
var dfs func(*TreeNode, int)
dfs=func(node *TreeNode, height int){
if node==nil{
return
}
if height>maxHeight{
maxHeight=height
sum=node.Val
}else if height==maxHeight{
sum=sum+node.Val
}
dfs(node.Left,height+1)
dfs(node.Right,height+1)
}
dfs(root,0)
return sum
}