编程语言
首页 > 编程语言> > 算法漂流记-层数最深叶子节点的和

算法漂流记-层数最深叶子节点的和

作者:互联网

题目

给你一棵二叉树,请你返回层数最深的叶子节点的和。

示例:

在这里插入图片描述

输入:

root = [1,2,3,4,5,null,6,7,null,null,null,null,8]

输出:

15

提示:

树中节点数目在 1 到 10^4 之间。
每个节点的值在 1 到 100 之间。

算法

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int max_deep =0, ret=0;
void deepNumAndSum(struct TreeNode* root, int deep)
{
    if(NULL == root)
    {
        return ;
    }
    if(deep > max_deep)
    {
        ret = 0;
        max_deep = deep;
    }
    if(deep == max_deep)
    {
        ret += root->val;
    }
    deepNumAndSum(root->left,deep+1);
    deepNumAndSum(root->right,deep+1);
}

int deepestLeavesSum(struct TreeNode* root){
    ret =0;
    max_deep=0;
    deepNumAndSum(root,0);
    return ret;
}

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/deepest-leaves-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

yangzqiao 发布了26 篇原创文章 · 获赞 0 · 访问量 318 私信 关注

标签:TreeNode,struct,漂流记,deep,层数,ret,null,root,节点
来源: https://blog.csdn.net/yangzqiao/article/details/104100556