【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);
}
相关推荐
im_AMBER14 小时前
Leetcode 102 反转链表
数据结构·c++·学习·算法·leetcode·链表
5***b9714 小时前
Spring Boot--@PathVariable、@RequestParam、@RequestBody
java·spring boot·后端
今儿敲了吗14 小时前
01|多项式输出
c++·笔记·算法
AIGCExplore14 小时前
Jenkins 全局配置及工具验证教程
java·servlet·jenkins
qq_3181215914 小时前
Java大厂面试故事:Spring Boot、微服务与AI场景深度解析
java·spring boot·redis·微服务·ai·kafka·spring security
朔北之忘 Clancy14 小时前
2025 年 9 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·数学·青少年编程·题解
Xの哲學14 小时前
深入剖析Linux文件系统数据结构实现机制
linux·运维·网络·数据结构·算法
玛丽莲茼蒿14 小时前
javaSE 集合框架(五)——java 8新品Stream类
java·开发语言
程序员小假14 小时前
设计一个支持万人同时抢购商品的秒杀系统?
java·后端
L***d67014 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端