代码随想录算法刷题训练营day18

代码随想录算法刷题训练营day18:LeetCode(257)二叉树的所有路径、LeetCode(404)左叶子之和

LeetCode(257)二叉树的所有路径
题目
在这里插入图片描述

代码

import java.util.ArrayList;
import java.util.List;/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<String> binaryTreePaths(TreeNode root) {//递归+回溯--->获取二叉树的全部路径List<String> result=new ArrayList<>();//存放结果集合List<String> paths=new ArrayList<>();//存放临时路径集合//消除边缘情况if(root==null){return null;}//设置一个函数,用于递归+回溯所有路径的函数getPaths(result,paths,root);//它们均是引用型变量,是随着地址改变而改变return result;    }public void getPaths(List<String> result,List<String> paths,TreeNode root){//遍历路径时,需采用前序遍历//首先应把路径加入进去,防止再判断终止条件时空指针异常paths.add(String.valueOf(root.val));//终止条件----到叶子节点if(root.left==null&&root.right==null){//终止条件的时候,需要把路径返回到result结果中StringBuilder sb=new StringBuilder();for (int i = 0; i < paths.size(); i++) {sb.append(paths.get(i));if(i!=paths.size()-1){sb.append("->");}}String path=sb.toString();result.add(path);}//遍历左子树----当成根节点if(root.left!=null){//左子树不为空的时候进行遍历getPaths(result, paths,root.left);//回溯---剪支paths.remove(paths.size()-1);//把最后一个元素,也就是刚刚遍历到的下一个元素给干掉}if (root.right!=null) {getPaths(result, paths, root.right);paths.remove(paths.size()-1);    }}}

LeetCode(404)左叶子之和
题目
在这里插入图片描述
代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int sumOfLeftLeaves(TreeNode root) {//int sum=0;//递归条件变化一下if(root==null){return 0;}if(root.left==null&&root.right==null){return 0;}//int sum=0;int result=sumOfLeftLeavesTest(root);return result;}public int sumOfLeftLeavesTest(TreeNode root){if(root==null){return 0;}if(root.left==null&&root.right==null){return 0;}int leftSum=sumOfLeftLeavesTest(root.left);//此时是左子树,同样也是叶子节点int rightSum=sumOfLeftLeavesTest(root.right);int leftValue=0;if(root.left!=null&&root.left.left==null&&root.left.right==null){//空指针异常问题leftValue=root.left.val;}int sum=leftSum+rightSum+leftValue;return sum;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码小技巧

1、秒换算小时&分钟 int Time; int Hour,Minutes; HourTime/3600;//小时 Minutes(Time/60)%60;//分钟 Minutes(Time%3600)/60;//分钟 2、C当中比较大小 法一&#xff1a;利用库函数 int main() {int array[] { 5, 2, 9, 1, 7 }; cout << "最大值: "…

STP生成树协议实验

实验大纲 一、什么是生成树协议 二、生成树原理 1.STP工作原理 2.STP主要参数 3.STP根网桥 4.STP协议版本 三、实验 1.构建网络拓扑结构图 2.配置IP地址&#xff08;8台PC机&#xff09;&#xff1a;192.168.7.1~192.168.7.8 3.配置SW1 4.配置SW2 5.配置SW3 6.配置…

C++ 数论相关题目 求组合数IV

输入 a,b &#xff0c;求 Cba 的值。 注意结果可能很大&#xff0c;需要使用高精度计算。 输入格式 共一行&#xff0c;包含两个整数 a 和 b 。 输出格式 共一行&#xff0c;输出 Cba 的值。 数据范围 1≤b≤a≤5000 输入样例&#xff1a; 5 3 输出样例&#xff1a; 10 #…

蓝桥杯省赛无忧 课件51 第6次学长直播带练配套课件

01 最小的或运算 02 简单的异或难题 03 出列 04 异或森林 05 位移 06 笨笨的机器人 07 迷失的数 08 最大通过数

vue常用指令(v-mode)

一、v-mode 指令 作用: 获取和设置表单元素的值(实现双向数据绑定) 双向数据绑定 单向绑定: 就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新。双向绑定: 用户更新了View&#xff0c;Model的数据也自动被更新了&#xff0c;…

蓝牙----蓝牙消息传输_GATT服务发现

蓝牙消息传输_GATT服务发现 1.主机和从机GATT服务的发现2.通知的使用 1.主机和从机GATT服务的发现 GATT服务的发现由主机执行&#xff0c;一共三个阶段  1.处理交换 MTU 请求和响应&#xff0c;启动对 Simple Service 服务的发现。 if (discState BLE_DISC_STATE_MTU){// MT…

​ PaddleHub 首页图像 - 文字识别chinese_ocr_db_crnn_server​

PaddleHub 便捷地获取PaddlePaddle生态下的预训练模型&#xff0c;完成模型的管理和一键预测。配合使用Fine-tune API&#xff0c;可以基于大规模预训练模型快速完成迁移学习&#xff0c;让预训练模型能更好地服务于用户特定场景的应用 零基础快速开始WindowsLinuxMac Paddle…

【更新】ESG-71个工具变量汇总(2024)

一、引言 收集了CSSCI期刊文本数据&#xff0c;并对“ESG”相关期刊进行文本分析&#xff0c;统计了71个“ESG”相关的工具变量&#xff0c;希望对大家提升研究效率有所帮助 工具变量是一种在统计学和计量经济学中常用的技术&#xff0c;用于处理因果关系研究中的内生性问题。…

452. 用最少数量的箭引爆气球 - 力扣(LeetCode)

题目描述 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 …

带大家做一个,易上手的家常麻辣孜然牛蹄筋

首先 我们从冰箱中拿出牛蹄筋 泡水化开 一根大葱 一块生姜 大葱切段 生姜块 一把花椒 七个左右干辣椒 五个左右大料 三瓣蒜 切成蒜片 放入小碗中单独装起来 两个绿辣椒 首选螺丝椒 垃圾切成片 单独装起来 先将牛蹄筋 倒入锅中 然后加水 将牛蹄筋全部泡住即可 然后起锅烧…

RT-Thread: STM32 SPI使用流程

1.添加驱动 ①点开设置界面 ②勾选看门 SPI 驱动 ③点击保存 ④查看添加的驱动文件 drv_spi.c 2.打开驱动头文件定义 ①打开配置文件 ②打开定义 3.打开需要开启的SPI总线 打开 drivers 目录下的 board.h 用SPI搜索&#xff0c;找到如下文字&#xff0c;打开对应的宏。 /*-…

巴厘行记(四)——乌布漫游

欢迎览阅《巴厘行记》系列文章 巴厘行记巴厘行记&#xff08;一&#xff09;——海神庙 巴厘行记&#xff08;二&#xff09;——乌布之夜 巴厘行记&#xff08;三&#xff09;——Auntie和Mudi 巴厘行记&#xff08;四&#xff09;——乌布漫游 巴厘行记&#xff08;五&a…

Pytest单元测试框架

第一章、pytest概述 Pytest is a framework that makes building simple and scalable tests easy. Tests are expressive and readable—no boilerplate code required. Get started in minutes with a small unit test or complex functional test for your application or l…

深入理解与防范C语言中的栈溢出问题

一、引言 栈溢出是计算机安全领域中一个常见的漏洞&#xff0c;特别是在C语言编程中。由于C语言的灵活性和对内存管理的直接操作性&#xff0c;如果程序员在编写代码时不注意&#xff0c;就可能导致栈溢出的发生。本文将全面解析栈溢出的概念、原因、影响以及防范措施。 二、…

springboot+vue3支付宝接口案例-第二节-准备后端数据接口

springbootvue3支付宝接口案例-第二节-准备后端数据接口&#xff01;今天经过2个小时的折腾。准备好了我们这次测试支付宝线上支付接口的后端业务数据接口。下面为大家分享一下&#xff0c;期间发生遇到了一些弯路。 首先&#xff0c;我们本次后端接口使用的持久层框架是JPA。这…

3d合并模型是重名材质---模大狮模型网

当合并3d模型时&#xff0c;如果存在重名的材质&#xff0c;可能会导致加载问题。这是因为3D软件在处理重名材质时可能会出现冲突。你可以尝试以下方法解决这个问题&#xff1a; 重命名材质&#xff1a;检查合并的模型中的材质&#xff0c;确保它们具有唯一的命名。修改重名的材…

Pyroch中transforms 图像增强发方法的应用

1 应用场景 在我们训练模型的时候&#xff0c;有的时候数据不够&#xff0c;就需要通过水平翻转、垂直翻转、镜像、旋转、改变亮度、标准化等方式增加图像的多样性&#xff0c;此时可以调用Pytorch 中的Transforms完成这些操作 2 导入相应的库 from torchvision import tran…

多场景建模:美团HiNet

HiNet: Novel Multi-Scenario & Multi-Task Learning with Hierarchical Information Extraction 背景&#xff1a; 美团的多场景多任务&#xff08;ctr、ctcvr&#xff09; 解决方案 通过分层来分别学习多场景多任务 方案详情 点评&#xff1a;在底层Embedding时用…

如何实现Win系统ssh连接Ubuntu使用vscode远程敲代码

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接…

opencv#35 连通域分析

连通域分割原理 像素领域介绍: 4邻域是指中心的像素与它邻近的上下左右一共有4个像素&#xff0c;那么称这4个像素为中心像素的4邻域。 8邻域是以中心像素周围的8个像素分别是上下左右和对角线上的4个像素。 连通域的定义(分割)分为两种:以4邻域为相邻判定条件的连通域分割和…