【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);
}
相关推荐
biubiubiu070613 分钟前
SpringBoot3.5.4 AOP环绕通知使用
java·spring boot
GUO_PP13 分钟前
win11英雄联盟打开以后,自动改变音效,开启免提模式的问题修正
人工智能·算法
西安邮电大学22 分钟前
Redis四大经典缓存问题
java·redis·后端·其他·面试
变量未定义~26 分钟前
排列数字、 n-皇后问题
数据结构·算法
超梦dasgg31 分钟前
Redisson解锁失败,WatchDog会不会一直续期下去?
java·redis
Chase_______40 分钟前
【Java基础 | 11】异常处理进阶:throw、throws、自定义异常与异常链讲清楚
java·开发语言·python
BirdenT40 分钟前
20260604紫题训练
c++·算法
DFT计算杂谈41 分钟前
VASP 磁性结构可视化:一键生成完美 VESTA / MCIF
java·前端·css·html·css3
元启数宇42 分钟前
疏散指示AI实战:规范布点与路径推演全流程
人工智能·算法
tg:;44 分钟前
Catkin 常用命令
开发语言·c++·算法