算法练习第十七天| 110.平衡二叉树 、 257. 二叉树的所有路径、 404.左叶子之和 [主要使用递归的方式]

110.平衡二叉树

/*** 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 boolean isBalanced(TreeNode root) {return getHeight(root) != -1; }//左右中遍历public int getHeight(TreeNode root){if(root == null) return 0;int leftHeight = getHeight(root.left);if(leftHeight == -1) return -1;int rightHeight = getHeight(root.right);if(rightHeight == -1) return -1;if(Math.abs(leftHeight-rightHeight) > 1) return -1;int res = Math.max(leftHeight,rightHeight) + 1;return  res;}
}
  1. 二叉树的所有路径
/*** 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> res = new ArrayList<String>();if(root == null) return res;List<Integer> paths = new ArrayList<>();traversal(root,paths,res);return res;}public void traversal(TreeNode root,List<Integer> paths,List<String> res){paths.add(root.val);if(root.left == null && root.right == null){StringBuilder sb = new StringBuilder();for(int i = 0;i<paths.size()-1;i++){sb.append(paths.get(i)).append("->");}sb.append(paths.get(paths.size()-1));res.add(sb.toString());}if(root.left != null) {traversal(root.left,paths,res);paths.remove(paths.size()-1);}if(root.right != null) {traversal(root.right,paths,res);paths.remove(paths.size()-1);}}
}

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) {//     if(root == null) return 0;//     if(root.left == null && root.right == null) return 0;//     int leftNum = sumOfLeftLeaves(root.left);//     if(root.left != null && root.left.left == null && root.left.right == null){//         leftNum =  root.left.val;//     }//     int rightNum = sumOfLeftLeaves(root.right);//     return leftNum + rightNum;// }// public int sumOfLeftLeaves(TreeNode root) {//     if(root == null) return 0;//     Stack<TreeNode> stack = new Stack<>();//     stack.push(root);//     int res = 0;//     while(!stack.isEmpty()){//         TreeNode node = stack.pop();//         if(node.left != null && node.left.left == null && node.left.right == null){//             res +=  node.left.val;//         }//         if(node.left != null) stack.push(node.left);//         if(node.right != null) stack.push(node.right);//     }//     return res;// }public int sumOfLeftLeaves(TreeNode root) {if(root == null) return 0;Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);int res = 0;while(!queue.isEmpty()){int size = queue.size();while(size-- > 0){TreeNode node = queue.poll();if(node.left != null && node.left.left == null && node.left.right == null){res +=  node.left.val;}if(node.left != null) queue.offer(node.left);if(node.right != null) queue.offer(node.right);}}return res;}
}

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

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

相关文章

zookeeper Study

zk介绍&#xff1b;一种分布式协调服务。 分布式锁&#xff0c;集群选举&#xff0c;数据同步 。 zk都能进行操作&#xff0c;redis&#xff0c;kafka&#xff0c;rabbitmq&#xff0c;都能够用zk做协调管理服务。关键时zk简单操作。 应用说明&#xff1a; 简单介绍一下流程 &…

芯片工程系列(2)传统封装(引线键合与裸片贴装)

英文缩写 Die&#xff1a;即为wafer上切割出来的芯片Wire Bonding&#xff1a;引线键合Dicing&#xff1a;晶圆切割Bias voltage&#xff1a;偏压lead frame&#xff1a;引线框架First Bond&#xff1a;一次键合Second Bond&#xff1a;二次键合PCB&#xff1a;印制电路板&…

JMH287亲测【鸣潮】一键内测风景端V1.0.2已整理并录制视频教学

资源介绍&#xff1a; 否需要虚拟机&#xff1a;否 文件大小&#xff1a;压缩包约15G 支持系统&#xff1a;win7、win10、win11 硬件需求&#xff1a;运行内存16G 4核及以上CPU独立显卡 资源截图&#xff1a; 下载地址&#xff1a; JMH287【鸣潮】一键端 [V1.0.2]

给攻击扫站惊喜大礼包,压缩文件空链接直接跳转50G大文件

给攻击扫站惊喜大礼包&#xff0c;压缩文件空链接直接跳转50G大文件 方法一 在 nginx 配置里加了个下载空连接 ZIP/RAR 等链接&#xff0c;直接跳转 50G 的大文件&#xff0c;正常链接不受影响 location ~ /(.*\.7z|.*\.zip|.*\.rar|.*\.tar|.*\.gz|.*\.tar\.gz)$ {if (!-f $re…

题解:CF1929C(Sasha and the Drawing)

题解&#xff1a;CF1929C&#xff08;Sasha and the Drawing &#xff09; 一、 理解题意 CF链接 洛谷链接 大佬syz带着 a a a 元来到赌场&#xff0c;赌场的规则如下&#xff1a; 对于每一轮&#xff0c;假设选手下注 y y y 元钱&#xff08; y y y 应正整数&#xff0c;并…

Java面试题分享

1、JAVA面试题分享 大家在找工作的的时候总是会看对应专业的面试题&#xff0c;java方面的更是层出不穷。 网络搜寻也很多&#xff0c;不知道看那个好。 我在这里分享我在找工作和平常会复习的一套面试题。 是之前在csdn的一个博主星球下载的。 里面包含了基础&#xff0c;集…

SpringMVC09、Ajax

9、Ajax 9.1、简介 AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。 Ajax 不是一种新的编程语言&#xff0c;而是一种用于创建更好更快以及交互…

nodejs创建的‘无后缀‘文件Win11无法删除、无法修改后缀、360文件粉碎无法粉碎

版本信息 操作系统版本&#xff1a;win11nodejs&#xff1a;v14.16.0 场景&#xff1a; 接收了base64格式数据字符串&#xff08;data:*/*;base64,xxxxxx就是这种样式的&#xff09;&#xff1b;要将其存储于本地。将字符串,号后的字符串转二进制写入本地。内容各种的都获取…

Spring Security的API Key实现SpringBoot 接口安全

Spring Security的API Key实现SpringBoot 接口安全 Spring Security 提供了各种机制来保护我们的 REST API。其中之一是 API 密钥。API 密钥是客户端在调用 API 调用时提供的令牌。 在本教程中&#xff0c;我们将讨论如何在Spring Security中实现基于API密钥的身份验证。 API…

CSP初赛备考—汉字与运算

汉字 英文字符 英文字符的编码有两种:①ASCII标准码,7位(128个字符)②ASCII扩展吗,8位(256个字符) 中文字符 汉字分为两级:①一级汉字:3755个,按汉语拼音字母的次序排列。②二级汉字:3008个,按偏旁部首排列。 那么,怎么编码呢?要使用区位码和字形码等等。 区…

Docker环境搭建和监控备份

1. 解释Docker中的容器和镜像的概念&#xff0c;并说明它们在环境搭建中的作用。 Docker中的容器和镜像是Docker最核心的概念&#xff0c;它们在环境搭建中扮演着至关重要的角色。 容器&#xff08;Container&#xff09;&#xff1a; 容器是Docker环境中用于运行应用的实体…

注意力机制网络

注意力机制在深度学习领域中是一种重要的技术&#xff0c;特别是在序列模型和自然语言处理&#xff08;NLP&#xff09;任务中。注意力机制的核心思想是在模型的输入上模拟人类的注意力过程&#xff0c;即模型能够自动决定在处理特定任务时应该“关注”输入数据的哪些部分。通过…

【UE5】游戏框架GamePlay

项目资源文末百度网盘自取 游戏框架 游戏 由 游戏模式(GameMode) 和 游戏状态(GameState) 所组成 加入游戏的 人类玩家 与 玩家控制器(PlayerController) 相关联 玩家控制器允许玩家在游戏中拥有 HUD&#xff0c;这样他们就能在关卡中拥有物理代表 玩家控制器还向玩家提供 …

在centos7系统中如何给docker配置代理

一、需求场景 生产环境私有云中&#xff0c;通常一个集群的机器中只有几台机器可以直接访问公网&#xff0c;其他机器需要通过代理的方式从能访问公网的机器出去&#xff0c;在已经做了如下配置之后&#xff0c;使用docker pull命令已经报错超时timeout&#xff0c;这时可以尝…

利用tree命令自动保存文件层级结构

tree命令的使用 为了将上图左侧的文件目录&#xff0c;生成上图右侧中的文件夹结构列表&#xff0c;保存在txt中&#xff0c;使用了如下cmd命令&#xff1a; C:\armadillo-12.8.0>tree .>list.txt以上tree命令分为3部分&#xff1a; tree 命令. 在当前目录>list.tx…

使用Numpy手工模拟梯度下降算法

代码 import numpy as np # Compute every step manually# Linear regression # f w * x # here : f 2 * x X np.array([1, 2, 3, 4], dtypenp.float32) Y np.array([2, 4, 6, 8], dtypenp.float32)w 0.0# model output def forward(x):return w * x# loss MSE def loss…

02hadoop伪分布式搭建

3. 环境安装 3.1 安装方式 单机模式 只能启动MapReduce 伪分布式 能启动HDFS、MapReduce 和 YARN的大部分功能 完全分布式 能启动Hadoop的所有功能 3.2 安装JDK 3.2.1 JDK安装步骤 下载JDK安装包&#xff08;下载Linux系统的 .tar.gz 的安装包&#xff09; https://www…

循序渐进丨MogDB 数据库特性之动态数据脱敏机制

数据脱敏是行之有效的数据库隐私保护方案之一&#xff0c;可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化脱敏策略来实现对隐私数据保护的技术&#xff0c;可以在保留原始数据的前提下有效地解决非授权用户对敏感信息访问的问题。当管理员…

稀碎从零算法笔记Day10-LeecCode:赎金信

题型&#xff1a;哈希表、字符串 链接&#xff1a;383. 赎金信 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以…

Cloud-Sleuth分布式链路追踪(服务跟踪)

简介 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败 GitHub - spring-cloud/spring-cloud-sl…