【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);
}
相关推荐
.道阻且长.6 小时前
2.LeetCode算法习题讲解--双指针--复写零
算法·leetcode·职场和发展
·薯条大王7 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
To_OC8 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
白狐_7988 小时前
408数据结构第5章:二叉树遍历序列题——技巧、判断与真题型总结
数据结构
ZJH__GO10 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆10 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光10 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
凤山老林10 小时前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
命运之光10 小时前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言