题目
给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。
提示:
树中节点数目在范围 [1, 104] 之间。
1 <= Node.val <= 100
思路
层次遍历,找出最后一层,累加和即可!
代码
class Solution {
public int deepestLeavesSum(TreeNode root)
{
if(root==null)
return 0;
int ans=0;
Deque <TreeNode> deque = new LinkedList<>();
deque.add(root);
while(!deque.isEmpty())
{
int size = deque.size();
ans=0;
for(int i=0;i<size;++i)
{
// 找出所有的叶子节点
TreeNode temp=deque.poll();
if(temp.left==null && temp.right==null)
ans+=temp.val;
if(temp.left!=null)
deque.add(temp.left);
if(temp.right!=null)
deque.add(temp.right);
}
}
return ans;
}
}
结果
进行层次遍历,每一层进行累加和,得到最终的结果即可!