/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int deep;
int ans;
void dfs(TreeNode* now,int d){
if(now->left == NULL && now->right == NULL){
if(d > deep){
deep = d;
ans = now->val;
return ;
}
if(d == deep){
ans += now->val;
return ;
}
return ;
}
if(now->left != NULL) dfs(now->left,d+1);
if(now->right != NULL) dfs(now->right,d+1);
}
int deepestLeavesSum(TreeNode* root) {
ans = 0;
deep = -1;
if(root == NULL) return ans;
dfs(root,0);
return ans;
}
};
No.171 - LeetCode1302
最新推荐文章于 2022-08-17 22:58:09 发布
本文介绍了一种通过深度优先搜索(DFS)算法解决二叉树最深叶子节点和的问题。该算法首先定义了一个二叉树节点结构,然后使用递归方式对树进行深度遍历,记录最深层级及其节点值总和。当遇到叶节点时,会检查当前深度是否超过已知最深层级,若是,则更新最深层级及对应的节点值总和。
288

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



