【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);
}
相关推荐
个案命题11 分钟前
鸿蒙ArkUI组件通信专家:@Param装饰器的奇幻漂流
java·服务器·前端
CodeCraft Studio18 分钟前
Excel处理控件Aspose.Cells教程:使用C#在Excel中创建折线图
java·c#·excel·aspose.cells·excel图表·excel api库·excel折线图
binary思维23 分钟前
C语言应用领域及操作Excel方法
c语言
子超兄27 分钟前
Bean生命周期
java·spring
程序员阿鹏29 分钟前
事务与 ACID 及失效场景
java·开发语言·数据库
程序员清风30 分钟前
阿里二面:新生代垃圾回收为啥使用标记复制算法?
java·后端·面试
sino爱学习31 分钟前
Java 三元表达式(?:)的常见坑总结
java·后端
❀͜͡傀儡师34 分钟前
Spring Boot函数式编程:轻量级路由函数替代传统Controller
java·spring boot·后端
Mr.朱鹏1 小时前
超时订单处理方案实战指南【完整版】
java·spring boot·redis·spring·rabbitmq·rocketmq·订单
趁月色小酌***1 小时前
JAVA 知识点总结2
java·开发语言