首页 > 其他分享 >【.Net力扣刷题】第1302题:层数最深叶子节点的和

【.Net力扣刷题】第1302题:层数最深叶子节点的和

时间:2022-08-17 19:57:30浏览次数:83  
标签:node queue 1302 int sum 力扣 lenth Net 节点

题目描述

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/deepest-leaves-sum/

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


题目分析

本题需要遍历树找到层数最深的叶子节点,所以可以分为两种方式 深度优先搜索和广度优先搜索。


深度优先搜索(DFS)

通过递归寻找每个最深的节点,并将他们的数值进行累加。

    public int DeepestLeavesSum(TreeNode root)
    {
        int maxLenth = 0;
        int sum = 0;
        DFS(root, 1);
        return sum;
        void DFS(TreeNode node, int lenth)
        {
            if (node == null) return;
            if (lenth > maxLenth)
            {
                maxLenth = lenth;
                sum = node.val;
            }
            else if (lenth == maxLenth)
            {
                sum += node.val;
            }
            DFS(node.left, lenth + 1);
            DFS(node.right, lenth + 1);
        }
    }

广度优先搜索(BFS)

迭代读取每层的数值,则最后一次循环读取的必定是深度最高的节点,所以每次循环开始的时候将节点和置为0即可。

    public int DeepestLeavesSum2(TreeNode root)
    {
        int sum = 0;
        Queue<TreeNode> queue = new Queue<TreeNode>();
        queue.Enqueue(root);
        while (queue.Count > 0)
        {
            sum = 0;
            int size = queue.Count;
            for (int i = 0; i < size; i++)
            {
                TreeNode node = queue.Dequeue();
                sum += node.val;
                if (node.left != null)
                {
                    queue.Enqueue(node.left);
                }
                if (node.right != null)
                {
                    queue.Enqueue(node.right);
                }
            }
        }
        return sum;
    }

标签:node,queue,1302,int,sum,力扣,lenth,Net,节点
From: https://www.cnblogs.com/xqrdbky/p/16596542.html

相关文章

  • 【CV源码项目实现】darknet中network的实现过程
     darknet的网络结构使用network结构体进行保存,network的构建过程主要包括以下几个函数:load_network(src/networks.c)----->parse_network_cfg(src/parser.c) --->ma......
  • .NET Framework 4 安装
    因公司需要在虚拟机上进行开发所以安装运行某些软件的时候需要用到.NETFramework4环境,所以进行大量的百度安装方法方法一:使用官方下载的程序包安装下载地址:h......
  • kubernetes网络模型
    Overview本文将探讨Kubernetes中的网络模型,以及对各种网络模型进行分析。UnderlayNetworkModel什么是UnderlayNetwork底层网络UnderlayNetwork顾名思义是指网络......
  • 关于在 debian 里被 network-tools 托管后如何重连 WIFI 的问题。
    ifconfig、ifup、ifdown三个命令。如果修改了/etc/wpa_supplicant/wpa_supplicant.conf后想重连wifi需要强制down了waln0后在ifup就行了。ifdownwlan0--for......
  • debian安装.net
    将Microsoft包签名密钥添加到受信任密钥列表,并添加包存储库。wgethttps://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb-Opackages-micros......
  • leetcode1302-层数最深叶子节点的和
    层数最深叶子节点的和BFS层序遍历树,返回最后一次计算的结果classSolution{publicintdeepestLeavesSum(TreeNoderoot){List<TreeNode>list=new......
  • ASP.NET Core依赖注入系统学习教程:5.生命周期
    在现实生活中,生命周期一词往往代表着某些人或事物从生到死的过程,而在依赖注入框架中,生命周期中的“生与死”体现为服务实例的创建和释放。实际上对于介绍依赖注入框架的生......
  • Network: use --host to expose
    vite启动后提示:Network:use --host toexpose,且无法通过网络IP访问服务   原因:当 局域网 中另一台设备需要访问该服务时,必须通过本机 IP+端口 访问。尝......
  • .net core 6.0 应用session
    一、在Strartup类的ConfigureServices方法中添加:services.AddDistributedMemoryCache(); //添加内存缓存services.AddSession(); //添加Session服务 二、在Strartu......
  • <摘自https://blog.csdn.net/JavaAndLI/article/details/125359786>SQL分页查询的写法
    MySQL的分页实现是使用LIMIT关键字。Oracle的分页是实现主要是基于rownum行号。SQLServer的分页主要使用的关键字是TOP。 具体用法总结如下:本文中的变量名词说明:1,......