【Leetcode -2236.判断根节点是否等于子节点之和 -2331.计算布尔二叉树的值】

news2024/9/24 9:23:26

Leetcode

  • Leetcode -2236.判断根节点是否等于子节点之和
  • Leetcode -2331.计算布尔二叉树的值

Leetcode -2236.判断根节点是否等于子节点之和

题目:给你一个 二叉树 的根结点 root,该二叉树由恰好 3 个结点组成:根结点、左子结点和右子结点。
如果根结点值等于两个子结点值之和,返回 true ,否则返回 false 。

示例 1:
在这里插入图片描述

输入:root = [10, 4, 6]
输出:true
解释:根结点、左子结点和右子结点的值分别是 10 、4 和 6 。
由于 10 等于 4 + 6 ,因此返回 true 。

示例 2:
在这里插入图片描述

输入:root = [5, 3, 1]
输出:false
解释:根结点、左子结点和右子结点的值分别是 5 、3 和 1 。
由于 5 不等于 3 + 1 ,因此返回 false 。

提示:
树只包含根结点、左子结点和右子结点

  • 100 <= Node.val <= 100

思路:直接返回判断根的值是否等于左节点和右节点 val 之和;

		bool checkTree(struct TreeNode* root)
		{
		    //直接返回判断根的值是否等于左节点和右节点 val 之和
		    return root->val == root->left->val + root->right->val;
		}

Leetcode -2331.计算布尔二叉树的值

题目:给你一棵 完整二叉树 的根,这棵树有以下特征:

叶子节点 要么值为 0 要么值为 1 ,其中 0 表示 False ,1 表示 True 。
非叶子节点 要么值为 2 要么值为 3 ,其中 2 表示逻辑或 OR ,3 表示逻辑与 AND 。
计算 一个节点的值方式如下:

如果节点是个叶子节点,那么节点的 值 为它本身,即 True 或者 False 。
否则,计算 两个孩子的节点值,然后将该节点的运算符对两个孩子值进行 运算 。
返回根节点 root 的布尔运算值。

完整二叉树 是每个节点有 0 个或者 2 个孩子的二叉树。
叶子节点 是没有孩子的节点。

示例 1:
在这里插入图片描述

输入:root = [2, 1, 3, null, null, 0, 1]
输出:true
解释:上图展示了计算过程。
AND 与运算节点的值为 False AND True = False 。
OR 运算节点的值为 True OR False = True 。
根节点的值为 True ,所以我们返回 true 。

示例 2:
输入:root = [0]
输出:false
解释:根节点是叶子节点,且值为 false,所以我们返回 false 。

提示:
树中节点数目在 [1, 1000] 之间。
0 <= Node.val <= 3
每个节点的孩子数为 0 或 2 。
叶子节点的值为 0 或 1 。
非叶子节点的值为 2 或 3 。

思路:如果 val == 2 或 3,返回左子树和右子树对应的逻辑运算,如果是 0 或 1,返回 false 或 true;

		bool evaluateTree(struct TreeNode* root)
		{
		    //节点的值为1,返回true
		    if (root->val == 1)
		        return true;
		
		    //节点的值为0,返回false
		    if (root->val == 0)
		        return false;
		
		    //节点的值为2,将左子树和右子树进行逻辑或计算
		    if (root->val == 2)
		        return evaluateTree(root->left) || evaluateTree(root->right);
		
		    //节点的值为3,将左子树和右子树进行逻辑与计算
		    return evaluateTree(root->left) && evaluateTree(root->right);
		}

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

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

相关文章

shell脚本自动化部署tomcat

前言 在一个月黑风高的晚上&#xff0c;在公司把程序打包好后&#xff0c;发给现场&#xff0c;结果又被告知不能登录命令行界面部署程序&#xff08;tomcat部署&#xff09;&#xff0c;只能提供一个shell脚本实现自动化部署&#xff0c;于是拿出我0.5年的开发经验&#xff0…

Spring MVC获取参数和自定义参数类型转换器及编码过滤器

目录 一、使用Servlet原生对象获取参数 1.1 控制器方法 1.2 测试结果 二、自定义参数类型转换器 2.1 编写类型转换器类 2.2 注册类型转换器对象 2.3 测试结果 三、编码过滤器 3.1 JSP表单 3.2 控制器方法 3.3 配置过滤器 3.4 测试结果 往期专栏&文章相关导读…

MySQL数据库学习笔记二

数据库存储引擎 数据库存储引擎是数据库底层软件组织&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;通过数据引擎&#xff0c;对数据进行创建、查询、修改和删除的操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能&#xff0c;使用不同的存储引擎…

Kubios HRV心率变异性分析软件

Kubios HRV是由东芬兰大学研究团队开发的一款心率变异性分析软件&#xff0c;目前在全球128个国家被1200所大学的科研人员使用。 PC端的Kubios HRV主要分免费版&#xff08;Standard&#xff09;和收费版&#xff08;Premium&#xff09;两个版本。 免费版仅支持RR间期时间序…

Git添加与提交文件与查看

目录 一、Git添加 二、Git提交文件 三、查看Git仓库的提交历史和当前状态 一、Git添加 1、在终端或命令提示符中&#xff0c;导航到你的Git项目所在的目录&#xff0c;使用 cd 命令切换目录。 2、在目标目录中&#xff0c;运行以下命令来初始化一个新的Git仓库&#xff0c;…

【跟小嘉学 Rust 编程】一、Rust 编程基础

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 文章目录 系列文章目录前言一、Rust是什么&#xff1f;二、Rust 开发环境搭建2.1、下载地址2.2、Windows 环境安装 可以参考2.3、Mac 环境安装2.3.1、安装步骤2.3.2、执行完上述命令之后&#xff0c;有如下提示 2.4、安…

深度学习----第J1周:ResNet50算法实战

深度学习----第J1周&#xff1a;ResNet50算法实战 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客** 参考文章&#xff1a;Pytorch实战 | 第P5周&#xff1a;运动鞋识别**&#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 文章目录 深度学习…

Elasticsearch 分词器

前奏 es的chinese、english、standard等分词器对中文分词十分不友好&#xff0c;几乎都是逐字分词&#xff0c;对英文分词比较友好。 在kibana的dev tools中测试分词&#xff1a; POST /_analyze {"analyzer": "standard","text": "你太…

chatgpt赋能python:Python文件导出方法详解

Python文件导出方法详解 Python是一种高级编程语言&#xff0c;广泛应用于各种数据科学、人工智能、Web开发等领域。在Python开发中&#xff0c;我们需要将处理好的数据与结果输出为合适的格式&#xff0c;文件导出是常见的输出方式之一。在本文中&#xff0c;我们将详细介绍P…

【C++篇】C++的输入和输出

友情链接&#xff1a;C/C系列系统学习目录 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的…

chatgpt赋能python:Python整人代码大全

Python整人代码大全 作为一名有10年Python编程经验的工程师&#xff0c;我深知Python这门编程语言广泛应用于各种领域&#xff0c;包括网络编程、数据分析、人工智能等等。然而&#xff0c;Python同样也有着一些有趣的应用&#xff0c;比如用来整人。 在这篇文章中&#xff0…

[设计模式] OOP六大原则

文章目录 前言1、六大原则1.1、单一职责原则1.2、开闭原则1.3、里氏替换原则1.4、依赖倒置原则1.5、接口隔离原则1.6、迪米特原则 前言 Object Oriented Programming 面向对象编程 1、六大原则 1.1、单一职责原则 就一个类而言&#xff0c;应该仅有一个引起它变化的原因。应…

MIT 6.S081 (BOOK-RISCV-REV1)教材第四章内容 -- 下

MIT 6.S081 教材第四章内容 -- 下 引言从内核空间陷入页面错误异常Page Fault BasicsLazy page allocationZero Fill On DemandCopy On Write ForkDemand PagingMemory Mapped Files 真实世界 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第四章教材内容翻译加整理。…

机器人工程创新类课程补充说明-2023-

内容仅供参考&#xff0c;不严谨。 案例&#xff1a; 在f1tenth仿真中如何实现更快速的跑圈-曲线分析篇 所有课程其实主动权永远都掌握在学生手中&#xff0c;愿意学的会多花时间自主研究&#xff08;主动学习&#xff09;&#xff0c;不愿意的就会用一些独特手段应付&#xf…

硬件入门之什么是电感

硬件入门之什么是电感 文章目录 硬件入门之什么是电感一、电感是什么&#xff1f;电感在电路中的作用&#xff1a;通直流隔交流&#xff0c;防止电流突变&#xff0c;储能。 二、实际应用场景常见电容&#xff1a;1.贴片电感&#xff08;无正负极之分&#xff09;2、变压器&…

第六章 MobileNetv1网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

chatgpt赋能python:Python文件怎么改名:简单易用的方法

Python文件怎么改名&#xff1a;简单易用的方法 在Python开发中&#xff0c;文件的重命名是一个经常用到的操作。无论是更改文件名还是批量重命名&#xff0c;在Python中都可以非常轻松地实现。本文将介绍三种不同的方法来改变Python文件的名称。 方法一&#xff1a;使用os模…

哔哩下载姬 - DownKyi

这款开源工具小编自己还是蛮喜欢的&#xff0c;有兴趣的小伙伴可以体验学习下。 一、简单介绍 Downkyi是一个极其便捷的开源工具&#xff0c;专为Bilibili视频下载而设计。它拥有一个简洁、直观的界面&#xff0c;操作逻辑流畅无比。Downkyi能够下载几乎所有B站视频&#xff0…

11.创建CentOS虚拟机

创建不同类型的实例虚拟机&#xff0c;我们是需要根据需求来准备镜像上传到glance&#xff0c;注意 ISO 镜像上传上去是没法直接使用的&#xff0c;需要将 ISO 镜像转变成qcow2磁盘文件&#xff0c;然后上传磁盘文件&#xff0c;就可以创建云主机。 官方镜像仓库地址&#xff1…

FBM237 RH914XS而且控制部件采用冗余容错技术,运行可靠性提高

​ FBM237 RH914XS而且控制部件采用冗余容错技术,运行可靠性提高 FBM237 RH914XS而且控制部件采用冗余容错技术,运行可靠性提高 概述 dcs系统与其他计算机设备是由电子元件和大规模集成电路构成&#xff0c;结构紧密&#xff0c;而且控制部件采用冗余容错技术,运行可靠性提高。…