LeetCode 2331. 计算布尔二叉树的值(树的遍历)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给你一棵 完整二叉树 的根,这棵树有以下特征:
- 叶子节点 要么值为 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 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/evaluate-boolean-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 树的后序遍历
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def evaluateTree(self, root: Optional[TreeNode]) -> bool:if not root.left and not root.right:return True if root.val else Falsel = self.evaluateTree(root.left)r = self.evaluateTree(root.right)return (l and r) if root.val==3 else (l or r)
56 ms 15.8 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 2331. 计算布尔二叉树的值(树的遍历)相关推荐
- 【算法leetcode】2331. 计算布尔二叉树的值(多语言实现)
文章目录 2331. 计算布尔二叉树的值: 样例 1: 样例 2: 提示: 分析 题解 rust go typescript python c c++ java 原题传送门:https://leetc ...
- 2331. 计算布尔二叉树的值-深度优先遍历
2331. 计算布尔二叉树的值 给你一棵 完整二叉树 的根,这棵树有以下特征: 叶子节点 要么值为 0 要么值为 1 ,其中 0 表示 False ,1 表示 True . 非叶子节点 要么值为 2 ...
- 2331. 计算布尔二叉树的值【划水刷题】
题目链接 2331. 计算布尔二叉树的值 思路 根据题意: 首先分两种条件搞,叶子节点和非叶子节点 叶子节点 判断本身值因为·1为true,0为false,直接返回本身值就行,那么问题就是怎么判断是否 ...
- 【深度优先搜索-简单】2331. 计算布尔二叉树的值
[题目] [代码] # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=No ...
- 二叉树总结(二)树的遍历
该文我会用来总结二叉树相关的知识 二叉树如下图: 二叉树的结构 struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int ...
- 【leetcode 971】 翻转二叉树以匹配先序遍历
题意: 给定一个先序遍历序列,给出一棵树,问能否通过翻转改树的某些左右子节点,使得该树的先序遍历序列等于给定的先序遍历序列 思路: 很基础的题目了,就是先序遍历一下,如果在这个节点的左子节点的值不等于 ...
- leetcode学习记录_二叉树_树
二叉搜索树(二叉排序树.二叉查找树) 二叉树值一种特殊的二叉树,它要么是空树,要么满足以下条件: 若左子树存在,则左子树上的所有结点都一定小于根结点,反之,右子树的所有结点都一定大于根节点,并且除了根 ...
- leetcode 538:把二叉树搜索树转换为累加树
leetcode 538:把二叉树搜索树转换为累加树 538. 把二叉搜索树转换为累加树 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使 ...
- 【每日一题】Leetcode 刷题 二叉树-树的遍历 介绍
二叉树-树的遍历 前序遍历 (根 左 右) 中序遍历 (左 根 右) 后序遍历 (左 右 根) 代码实现 前序遍历 中序遍历 后序遍历 完整代码 前序遍历 (根 左 右) 遍历顺序分别为: F B A ...
最新文章
- oracle rman实时备份吗,ORACLE-RMAN自动备份和恢复
- php mysql 时间戳查询_mysql中时间查询函数(包括时间戳)
- python3.7.2安装教程-CentOS 7安装Python教程
- Office 插件开发和部署的总结
- debian搭建php mysql_Debian下MySQL安装经验分享
- 集群、RAC和MAA
- linux nslcd服务,CentOS 6通过ldap集成AD域账号(nslcd方式)
- 模板 - 数论 - (新)
- devops流程工具_您的DevOps工作流程依赖哪些工具?
- 杭电1596find the safest road(spfa)
- 无心剑中译约翰·拉伯克《书海乐无穷》
- win10无线网 服务器,win10专业版wifi变成地球怎么办_win10 wifi图标变成小地球无法连接网络如何解决...
- bios対初学者_初学者的BIOS
- 如何主动退出小程序(微信小程序)
- python海龟绘图画玫瑰花的简笔画_用python的小海龟 Turtle 画一朵好看又有趣的小花-Go语言中文社区...
- 移动开发平台 mPaaS iOS端原生与WKWebView交互原理(如何打印蚂蚁框架所有原生与h5交互数据)
- java生成二维码并导入excel中
- 【Java】Java零基础学习笔记
- 如何找出1-100之间的质数
- 如何用MATLAB叠加傅里叶级数,傅里叶级数展开matlab实现
热门文章
- 服务器远程端口是什么?远程端口怎么设置?
- 百分百恋人 如何成为他的知心恋人
- Compilify Alpha阶段测试报告
- sql server小型案例-自动生成销售单号的触发器
- Unity3d C#实现显示计时器(游戏运行时间、录制时长等)功能(含项目源码)
- 多旋翼无人机进阶教程
- 河北大学计算机专业调剂,河北大学考研接收调剂信息
- 政考网:公务员考试常识100题,你能答对几个?
- Python基础学习——面向对象编程(第一讲:面向对象概述、面向对象三个基本特征(封装性、继承性、多态性)、类和对象(定义类、创建和使用对象、实例变量、类变量、构造方法、实例方法、类方法、静态方法))
- 判断圆和线相切java_通过直线与圆交点数,轻松判断直线与圆关系,相离、相交、相切...