【C语言题解】 | 965. 单值二叉树

965. 单值二叉树

提示:

  1. 给定树的节点数范围是 1, 100。
  2. 每个节点的值都是整数,范围为 0, 99 。
c 复制代码

这个题目我们通过分治思想来解题:

首先传入的是根节点

其次判断根节点是否有左子树和右子树,若存在则判断左右子树的值是否于根节点的值相同(不同则返回false,相同则继续)

c 复制代码
if(root->left && root->left->val != root->val
{
	return false;
}
if(root->right && root->right->val != root->val
{
	return false;
}

若正确,则继续向下递归,但是由于此题目要求返回true or flase,所以,我们需要返回

c 复制代码
return isUnivalTree(root->left) &&
    isUnivalTree(root->right);

因为是左右子树都必须满足,所以是 &&

代码:

c 复制代码
/**
 * 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);
}
相关推荐
vipxieliang14 分钟前
ValidX 验证器缓存机制:如何提升验证性能
java·spring boot
未秃头的程序猿25 分钟前
Spring Cloud Gateway 做统一加解密,我在请求体上栽了三天
java·后端·架构
Rain的Java大神之路26 分钟前
别再上来就堆 Redis!点赞系统从打挂数据库到 18w 写峰值,我把这套方案讲透了
java·后端·面试
SimonKing29 分钟前
开源文档解析天花板 MinerU 4.0:PDF / 图片 / Office 等任意文档都支持
java·后端·程序员
en.en..30 分钟前
volatile 完整深度教程(C 代码 + 带注释 ARM 汇编 + 硬件中断原理 + 分步运行时序)
c语言·汇编·arm开发
咖啡八杯34 分钟前
Spring MessageSource 国际化消息解析流程
java·后端·spring·架构·框架·若依
碧海银沙音频科技研究院1 小时前
基于ATS308X的无线语音交互对话功能实现
人工智能·嵌入式硬件·深度学习·算法
博.闻广见1 小时前
第10篇:Agent系统的性能优化 —— 缓存、压缩与动态模型路由
java·人工智能·后端·spring·agent
OKkankan1 小时前
python 进阶(三):面向对象进阶——从“会写 class”到设计可维护的后端对象
开发语言·数据结构·python
inrichtt1 小时前
第十课时:中断优先级揭秘:抢占与嵌套的底层逻辑:
c语言·stm32·单片机·嵌入式硬件·github