【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);
}
相关推荐
weixin_307779133 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
Wang's Blog7 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
hetao17338378 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
\光辉岁月/9 小时前
5.java-数组
java·开发语言
谢亮_vipxieliang9 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
Zootopia6269 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
longlongzihan9 小时前
从LeetCode 70. 爬楼梯看动态规划:如何精准推导状态转移方程?
c++·算法·leetcode·动态规划
郑州光合科技余经理9 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071579 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat9 小时前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference