【算法刷题day16】Leetcode:104. 二叉树的最大深度、111. 二叉树的最小深度、222.完全二叉树的节点个数

文章目录

    • Leetcode 104. 二叉树的最大深度
      • 解题思路
      • 代码
      • 总结
    • Leetcode 111. 二叉树的最小深度
      • 解题思路
      • 代码
      • 总结
    • Leetcode 222.完全二叉树的节点个数
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 104. 二叉树的最大深度

题目:104. 二叉树的最大深度
解析:代码随想录解析

解题思路

代码

/*** 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 maxDepth(TreeNode root) {if (root == null)return 0;int leftDepth = maxDepth(root.left);int rightDepth = maxDepth(root.right);return Math.max(leftDepth, rightDepth) + 1;}
}//队列,但是时间很慢
class Solution {public int maxDepth(TreeNode root) {int depth = 0;if (root == null)return depth;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while (!queue.isEmpty()) {int size = queue.size();depth++;for (int i = 0; i < size; i++) {TreeNode node = queue.poll();if (node.left != null)  queue.add(node.left);if (node.right != null)  queue.add(node.right);}}return depth;}
}//栈,但是时间很慢

总结

递归没写过

Leetcode 111. 二叉树的最小深度

题目:111. 二叉树的最小深度
解析:代码随想录解析

解题思路

找到第一个叶子节点就可以返回值

代码

/*** 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 minDepth(TreeNode root) {if (root == null)return 0;int depth = 0;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while(!queue.isEmpty()){int size = queue.size();depth++;for (int i = 0; i < size; i++){TreeNode node = queue.poll();if (node.left == null && node.right == null)return depth;if (node.left != null)  queue.add(node.left);if (node.right != null) queue.add(node.right);}}return depth;}
}//递归
/*** 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 minDepth(TreeNode root) {if (root == null)return 0;
//        if (root.left == null && root.right == null)
//            return 1;int leftDepth = minDepth(root.left);int rightDepth = minDepth(root.right);leftDepth = leftDepth == 0 ? rightDepth : leftDepth;rightDepth = rightDepth == 0 ? leftDepth : rightDepth;return Math.min(leftDepth, rightDepth) + 1;}
}

总结

暂无

Leetcode 222.完全二叉树的节点个数

题目:222.完全二叉树的节点个数
解析:代码随想录解析

解题思路

遍历

代码

/*** 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 countNodes(TreeNode root) {if (root == null)return 0;int leftNum = countNodes(root.left);int rightNum = countNodes(root.right);return 1 + leftNum + rightNum;}
}//遍历
class Solution {public int countNodes(TreeNode root) {int count = 0;if (root == null)return count;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while (!queue.isEmpty()) {int size = queue.size();for (int i = 0; i < size;  i++) {TreeNode node = queue.poll();count++;if (node.left != null)  queue.add(node.left);if (node.right != null) queue.add(node.right);}}return count;}
}

总结

暂无

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

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

相关文章

MT3017 上色

思路&#xff1a;使用分治&#xff0c;在每个连续区域递归调用heng()和shu() #include <bits/stdc.h> using namespace std; int n, m; int h[5005];int shu(int l, int r) {return r - l 1; } int heng(int l, int r) {int hmin 0x3f3f3f3f;for (int i l; i < r;…

IoT数采平台2:文档

IoT数采平台1&#xff1a;开篇IoT数采平台2&#xff1a;文档IoT数采平台3&#xff1a;功能IoT数采平台4&#xff1a;测试 【平台功能】 基础配置、 实时监控、 规则引擎、 告警列表、 系统配置 消息通知&#xff1a;Websocket 设备上线、设备下线、 数据变化、 告警信息、 实时…

蓝桥杯:全球变暖(python,BFS,DFS)(栈溢出的处理办法)

图论的经典题型&#xff0c;深度优先搜索和广度优先搜索都可以&#xff0c;但是本题推荐使用广度优先搜索&#xff08;类似的题最好都用广度优先搜索&#xff09;&#xff0c;因为使用深度优先搜索会爆栈&#xff08;栈溢出&#xff09;。本篇博客两种方法都进行讲解&#xff0…

【协议】RPC

文章目录 概述与web service/web api/wcf区别简介区别和联系 grpc.Net Core示例 参考 概述 与web service/web api/wcf区别 简介 RPC&#xff08;Remote Procedure Call Protocol&#xff09;即远程过程调用协议&#xff0c;是分布式系统间通信的一种协议。通过网络从远程计…

【Apache Doris】周FAQ集锦:第 2 期

【Apache Doris】周FAQ集锦&#xff1a;第 2 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

【WEEK6】学习目标及总结【MySQL】【中文版】

学习目标&#xff1a; 两周完成MySQL的学习——第二周 学习内容&#xff1a; 参考视频教程【狂神说Java】MySQL最新教程通俗易懂DQL查询数据 学习时间及产出&#xff1a; 第六周MON~WED, SUN 2024.4.1【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】【WEEK6】 【DAY1】DQ…

关键字:static

回顾类中的实例变量&#xff08;即非static的成员变量&#xff09; class Circle{ private double radius; public Circle(double radius){ this.radiusradius; } public double findArea(){ return Math.PI*radius*radius; } } 创建两个C…

计算机网络—TCP协议详解:特性、应用(2)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;マリンブルーの庭園—ずっと真夜中でいいのに。 0:34━━━━━━️&#x1f49f;──────── 3:34 &#x1f504; ◀️…

FPGA的就业前景

FPGA&#xff08;Field-Programmable Gate Array&#xff09;技术在数字电路设计和嵌入式系统开发方面具有广泛的应用&#xff0c;因此在FPGA领域有着较好的就业前景。 目前&#xff0c;FPGA在通信、计算机、消费电子、汽车、航空航天等行业中得到了广泛应用。随着新一代通信网…

抽象类与抽象方法(或abstract关键字)

由来 举例1&#xff1a; 随着继承层次中一个个新子类的定义&#xff0c;类变得越来越具体&#xff0c;而父类则更一般&#xff0c;更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象&#xff0c;以至于它没有具体的实例&#xff0c;这样的类叫做…

STM32G系 编程连接不上目标板,也有可能是软件不兼容。

由于一直用的老版本STM32 ST-LINK Utility 4.20 &#xff0c;找遍了所有问题&#xff0c;SWD就是连不上目标板。 电源脚 VDDA 地线&#xff0c;SWD的四条线&#xff0c;还是不行&#xff0c;浪费了一天&#xff0c;第二天才想起&#xff0c;是不是G系升级了 SWD协议。结果下载…

[InternLM训练营第二期笔记]2. 轻松分钟玩转书生·浦语大模型趣味 Demo

该系列是上海AI Lab举行的书生 浦语大模型训练营的相关笔记部分。 该笔记是第二节课&#xff0c;完成对话、多模态等demo&#xff0c;形成对InternLM的初步了解 1. 部署InternLM2-Chat-1.8B InternLM2-Chat-1.8B是一个对话小模型&#xff0c;只有1.8B参数&#xff0c;因此运行…

【算法刷题day15】Leetcode:各种层序遍历、226.翻转二叉树、101. 对称二叉树

文章目录 Leetcode 层序遍历解题思路代码总结 Leetcode 226.翻转二叉树解题思路代码总结 Leetcode 101. 对称二叉树解题思路代码总结 草稿图网站 java的Deque Leetcode 层序遍历 题目&#xff1a;102.二叉树的层序遍历 题目&#xff1a;107. 二叉树的层序遍历 II 题目&#xf…

深度学习:神经网络模型的剪枝和压缩简述

深度学习的神经网路的剪枝和压缩&#xff0c;大致的简述&#xff0c; 主要采用&#xff1a; network slimming&#xff0c;瘦身网络... 深度学习网络&#xff0c;压缩的主要方式&#xff1a; 1.剪枝&#xff0c;nerwork pruing&#xff0c; 2.稀疏表示&#xff0c;sparse rep…

【Git】分支协同开发

1、前言 由于之前一直是在master上开发 没有分支开发过 接触过好几个项目组 远程仓库不是用码云就是 gitlab 然后几个人在master开发 也没有UAT分支这些 没有分支协同开发很容易把冲突 读完本文 你将对Git分支开发又有一个新的认识 2、概念 master和UAT在远程都是保护分支…

每日面经分享(python进阶 part2)

Python中的装饰器和上下文管理器区别是什么&#xff1f;它们分别适用于哪些场景&#xff1f; a. 装饰器用于在函数或类的外部添加额外功能&#xff0c;而上下文管理器用于管理资源的获取和释放。 b. 装饰器是一种用于修改函数或类行为的技术。适用于需要在函数或类的外部添加额…

鸿蒙实战开发-通过输入法框架实现自绘编辑框

介绍 本示例通过输入法框架实现自会编辑框&#xff0c;可以绑定输入法应用&#xff0c;从输入法应用输入内容&#xff0c;显示和隐藏输入法。 效果预览 使用说明 1.点击编辑框可以绑定并拉起输入法&#xff0c;可以从输入法键盘输入内容到编辑框。 2.可以点击attach/dettac…

【学习分享】小白写算法之冒泡排序篇

【学习分享】小白写算法之冒泡排序篇 前言一、什么是冒泡排序算法二、冒泡排序算法如何实现三、C语言实现算法四、复杂度计算五、算法稳定性六、小结 前言 最近我要学习下数据结构和算法&#xff0c;有兴趣的小伙伴可以点个关注&#xff0c;一起学习。争取写的浅显易懂。如果你…

解决Toad for Oracle显示乱中文码问题

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

数据结构记录

之前记录的数据结构笔记&#xff0c;不过图片显示不了了 数据结构与算法(C版) 1、绪论 1.1、数据结构的研究内容 一般应用步骤&#xff1a;分析问题&#xff0c;提取操作对象&#xff0c;分析操作对象之间的关系&#xff0c;建立数学模型。 1.2、基本概念和术语 数据&…