Day29-代码随想录-左叶子之和404+找树左下角的值513

devtools/2025/3/30 3:19:18/

左叶子之和题目如下:

思路:求的是左叶子之和,不是最左侧叶子节点的和,所以即使是右子树,里面也会包含左叶子。使用递归的话,一定要明确递归三要素,这里递归的终止条件仍然是null时返回0(因为到空节点时,它的左叶子一定是0)。这里还需要明确的是如何判断是左叶子:通过它的父节点和它的左右孩子共同决定-如果它是父节点的左孩子,同时它的左右孩子都为空,那就说明他一定是左叶子。

单层递归的逻辑:当遇到左叶子节点的时候,记录数值,然后通过递归求取左子树左叶子之和,和 右子树左叶子之和,相加便是整个树的左叶子之和。

class Solution {public int sumOfLeftLeaves(TreeNode root) {//使用递归;注意左叶子不是左侧叶子,后序遍历if(root==null) return 0;int leftSumLeaves = sumOfLeftLeaves(root.left);//左int rightSumLeaves = sumOfLeftLeaves(root.right);//右//递归终止条件int midValue = 0;if(root.left != null && root.left.left == null && root.left.right == null){midValue = root.left.val;}int sum = leftSumLeaves + midValue + rightSumLeaves;//中return sum;}
}

找树左下角的值题目如下:

这道题用层序遍历的方法来做就会很简单,只需要在层序模版上判断一下是否到每层的第一个元素即可,代码如下:

class Solution {public int findBottomLeftValue(TreeNode root) {//层序遍历-只需要记录最后一层的第一个元素即可Deque<TreeNode> queue = new LinkedList<>();if(root == null) return 0;int result = 0;queue.offerLast(root);while(!queue.isEmpty()){int size = queue.size();for(int i = 0; i < size; i++){TreeNode node = queue.pollFirst();if(node.left != null) queue.offerLast(node.left);if(node.right != null) queue.offerLast(node.right);if(i==0) result = node.val;}}return result;}
}


http://www.ppmy.cn/devtools/171623.html

相关文章

Python----数据分析(足球运动员数据分析)

一、数据展示 1.1、数据 1.2、列名 字段名备注Name姓名Nationality国籍National_Position国家队位置National_Kit国家队号码Club所在俱乐部Club_Position所在俱乐部位置Club_Kit俱乐部号码Club_Joining加入俱乐部时间Contract_Expiry合同到期时间Rating评分Height身高Weight体…

印刷电路板 (PCB) 的影响何时重要?在模拟环境中导航

我和我的同事们经常被问到关于 PCB 效应的相同问题&#xff0c;例如&#xff1a; 仿真何时需要 PCB 效果&#xff1f; 为什么时域仿真需要 PCB 效应&#xff1f; 当 PCB 效应必须包含在仿真中时&#xff0c;频率是否重要&#xff1f; 设计人员应该在多大程度上关注 VRM 模型中包…

【AI大模型】搭建本地大模型GPT-J:详细步骤及常见问题

GPT-J本地部署&#xff1a;详细步骤指南 我将向您展示如何使用JavaScript/Node.js在本地设置和运行GPT-J模型。这种方法比设置复杂的Python环境更容易访问&#xff0c;并且对Web开发人员来说非常适用。 GPT-J概述 GPT-J是由EleutherAI创建的开源大型语言模型&#xff0c;拥有…

MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!

目录 一、什么是 MyBatis-Plus 自动填充&#xff1f; &#x1f914;二、自动填充的原理 ⚙️三、实际例子&#xff1a;创建时间和更新时间字段自动填充 ⏰四、注意事项 ⚠️五、总结 &#x1f389; &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢…

数据库基础知识点(系列五)

创建表&#xff0c;设置约束&#xff0c;修改表&#xff0c;删除表&#xff0c;表中数据的操作(insert,修改&#xff0c;删除) 1&#xff0e;在第5章习题创建的 “仓库库存”数据库中完成下列操作。 (1)创建“商品”表&#xff0c;表结构如表6-4&#xff1a; 表6-4 “goods”…

【transformer理论+实战(三)】必要的 Pytorch 知识

【Transformer理论实战&#xff08;三&#xff09;】必要的 Pytorch 知识 【Transformer理论实战&#xff08;二&#xff09;】Lora本地微调实战 --deepseek-r1蒸馏模型 【Transformer理论实战&#xff08;一&#xff09;】Transformer & LLaMA & Lora介绍 文章目录 Py…

Keil(ARMCC)编译改为Cmake(GNU)编译

1. 环境介绍&#xff1a; 某款ARM-M4芯片&#xff08;应该芯片通用&#xff09;cmkeGNUNinja&#xff08;CLion&#xff09; 2. 必备&#xff1a; 芯片启动文件 startup_xxxx.s链接文件 xxxx_flash.ldCMakeLists.txt 3. 具体修改步骤 第一步&#xff1a;观察启动文件…

Xenium | 细胞邻域(Cellular Neighborhood)分析(fixed k-nearest neighbor)

CN分析概念最早来源于空间单细胞蛋白组Codex文章&#xff0c;Coordinated Cellular Neighborhoods Orchestrate Antitumoral Immunity at the Colorectal Cancer Invasive Front。 定义 Cell Neighborhood&#xff08;细胞邻域&#xff09;指骨髓微环境中空间上邻近的细胞群体…