单值二叉树(oJ题)

server/2024/11/15 0:41:42/

一、题目连接:. - 力扣(LeetCode)

二、题目思路

遍历左右子树,如果左子树存在不为空并且根结点的值不等于左子树的值,返回false, 
如果右子树存在不为空并且根结点的值不等于右子树的值,返回false,
每一个结点都要判断它的左右子树的情况

三、题解代码

1.法一:

将每个结点的值都与其的父结点进行比较

bool isUnivalTree(struct TreeNode* root) {if (root == NULL)return true;if (root->left != NULL && root->val != root->left->val)//如果左子树存在,但是值不相等,就返回falsereturn false;if (root->right != NULL && root->val != root->right->val)//如果右子树存在,但是值不相等,就返回falsereturn false;return isUnivalTree(root->left) && isUnivalTree(root->right);//返回左右子树判断的结果的并集
}

2.法二:

运用子函数,将每个结点的值都与最大的根结点的值进行比较
 

bool _isUnivalTree(struct TreeNode* root, int val)
{if (root == NULL)return true;if (root->left != NULL && root->left->val != val)//如果左子树存在,但是值不相等,就返回falsereturn false;if (root->right != NULL && root->right->val != val)//如果右子树存在,但是值不相等,就返回falsereturn false;return _isUnivalTree(root->left, val) && _isUnivalTree(root->right, val);//返回左右子树判断的结果的并集}bool isUnivalTree(struct TreeNode* root)
{return _isUnivalTree(root, root->val);//将最大的根结点的值传入子函数
}


http://www.ppmy.cn/server/44930.html

相关文章

20、设计模式之备忘录模式

备忘录模式 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 介绍 意图: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存…

【最优化方法】实验四 约束最优化方法的MATLAB实现

实验的目的和要求:通过本次实验使学生较为熟练使用MATLAB软件,并能利用该软件进行约束最优化方法的计算。 实验内容: 1、罚函数法的MATLAB实现 2、可行方向法的MATLAB实现 学习建议: 本次实验就是要通…

数据库中的六大锁

目录 一、死锁 二、锁的区间划分 1、间隙锁(Gap Locks) 2、临键锁(Next-key Locks) 三、锁的粒度划分 1、表级锁(Table-level lock) 2、行级锁(Record Locks) 3、页级锁 四、…

5.23.9 TransUNet:Transformers 为医学图像分割提供强大的编码器

TransUNet,它兼具 Transformers 和 U-Net 的优点,作为医学图像分割的强大替代方案。一方面,Transformer 对来自卷积神经网络 (CNN) 特征图的标记化图像块进行编码,作为用于提取全局上下文的输入序列。另一方面,解码器对…

《TCP/IP网络编程》(第十一章)进程间通信

进程间通信意味着两个不同的进程间可以交换数据,它使得不同的进程能够协同工作,实现复杂的系统功能。 1.通过管道实现进程间通信 下图是基于 管道(PIPE) 的进程间通信结构模型 管道不属于进程的资源,属于操作系统的资…

数据分析项目有哪些实施流程?揭示从数据准备到解决方案全过程

在当今数据驱动的商业环境中,数据分析项目的成功实施对于企业洞察市场趋势、优化产品服务、提升用户体验以及增强竞争力具有至关重要的作用。特别是对于直播类应用软件这样的快速增长领域,如何通过数据分析来扩大付费用户基础、提高用户留存率&#xff0…

Sketch v100 for Mac 安装教程【支持M芯片】

Sketch v100 for Mac 安装教程【支持M芯片】 原文地址:https://blog.csdn.net/weixin_48311847/article/details/139104315

Vue3在Element UI 表格中自定义时间格式化显示

Vue3在Element UI 表格中自定义时间格式化显示 一、前言1、准备工作2、实现步骤1. 引入 Element UI 组件2. 自定义时间格式化函数3. 格式化日期逻辑 3、完整示例4、结论 一、前言 在开发 Web 应用程序时,常常需要在表格中展示时间数据。Element UI 是一个流行的 Vu…