当前位置: 首页 > news >正文

LeetCode 965题详解 | 单值二叉树的“一统江湖”:如何判断所有节点值全等?

题目如下:

在这里插入图片描述

解题过程如下:

示例中,即便这个结点是空结点也返回true。

若根结点不为空,那么先判断它的左孩子结点里的值是否与根结点里的值相等(这里要先确保左孩子不为空,因为左孩子结点里的值是解引用操作),若不相等返回false,不用判断它的右孩子结点了;若相等,先确保右孩子不为空,再判断它的右孩子结点里的值是否与结点里的值相等。

若根结点里的值都与它的左右孩子结点里的值相等,则继续递归。

在这里插入图片描述

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isUnivalTree(struct TreeNode* root) {
    if (root == NULL)
    {
        return true;
    }
    if (root->left && root->left->val != root->val)
    {
        return false;
    }
    if (root->right && root->right->val != root->val)
    {
        return false;
    }
    return isUnivalTree(root->left) && isUnivalTree(root->right);
}

相关文章:

  • Apache ECharts介绍(基于JavaScript开发的开源数据可视化库,用于创建交互式图表)
  • 二进制、八进制、十进制和十六进制间的转换(原理及工程实现)
  • 基于 uni-app 和 Vue3 开发的汉字书写练习应用
  • 【交通网络拓扑图实现原理深度解析】
  • 2.PSCAD是什么软件?
  • 中间件专栏之MySQL篇——MySQL的索引原理
  • 政务信息化项目审计全解析:核心重点与区域实践差异化破局
  • 有效的完全平方数
  • 基于微信小程序的竞赛报名系统设计与实现
  • 《C++ 构造、拷贝构造与析构函数:对象的诞生、克隆与消逝之旅》
  • x86寄存器(二):通用寄存器、指令指针寄存器和标志寄存器
  • 解决Selenium元素拖拽不生效Bug
  • open webui-二次开发-源码启动前后端工程-【超简洁步骤】
  • 利用MQ自动取消未支付超时订单最佳实践
  • 大模型最新面试题系列:训练篇之模型监控与调试
  • 静态时序分析:报告命令report_timing详解
  • C++中的.h文件一般是干什么的?
  • 数据结构–栈
  • Python中的常用库
  • RMAN备份bug-审计日志暴涨(select action from gv$session)
  • 小马智行一季度营收增12%:Robotaxi收入增长两倍,预计车队规模年底到千台
  • 昆明市委:今年起连续三年,每年在全市集中开展警示教育
  • 凤阳文旅局长回应鼓楼瓦片脱落:楼宇是否属于文物?施工经费用在何处?
  • 中青报聚焦上海社区心理服务:社工介入让居民“心畅”
  • 红星控股重整期间实控人被留置后续:重整草案不会修改,涉车建兴职责已调整
  • 特朗普与普京通话前夕,英美法德意领导人通话讨论俄乌问题