难度
题目内容 给你一棵二叉树的根节点
root,请你返回 层数最深的叶子节点的和 。
题解 使用广度优先遍历,依次计算每层和,进入下一层的开始时重置总和result为0,如此程序就会在最后一层保留结果,最后return结果。
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var deepestLeavesSum = function(root) {
const que = [root];
// 声明一个变量保存每一层的和
let resSum;
while(que.length) {
// 如果进入了下一层,就将结果置为0
resSum = 0
const len = que.length;
// 循环一层
for(let i=0;i<len;i++) {
const node = que.shift();
resSum += node.val
if(node.left) que.push(node.left)
if(node.right) que.push(node.right)
}
}
return resSum
};