力扣——单值二叉树(C语言)

1.题目:

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值 二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false

2.原理:

这里运用递归,向下递归,判断左右节点是否相等,不相等返回false,直到空节点,这里最后return里是&&,所以只要遇到false,最终回退到根节点也是false,也就不是单值二叉树,反之如果回退回来一直都相等,回退true,就是单值二叉树。

3.整体代码:

cpp 复制代码
/**
 * 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);
}
相关推荐
离凌寒1 小时前
一、关于st上制作外部烧录算法时软件识别不到算法文件的问题总结
算法
v_for_van1 小时前
C语言__attribute__
服务器·c语言·开发语言·mcu·嵌入式·嵌入式实时数据库
不灭的黄金瞳1232 小时前
C语言实现单链表
c语言·数据结构
萌动的小火苗2 小时前
Linux进程线程面试题【无答案】
linux·运维·服务器·c语言·开发语言
青 春 记 忆2 小时前
LeetCode 283. 移动零|Python 解法详解
python·算法·leetcode
春风解人意3 小时前
从零开始学习嵌入式P29----线程间的通信
c语言·嵌入式硬件·学习
Hrain-AI3 小时前
企业 AI 治理运营怎么做:分级授权、Token 用量可观测与模型统一纳管
大数据·人工智能·算法
剑指offer.3 小时前
Linux多任务-线程篇
java·jvm·算法
nike0good4 小时前
CF 126B(Password-z algorithm/exkmp)
开发语言·c++·算法
从零开始的嵌入式之旅4 小时前
day32
linux·c语言·经验分享·笔记·嵌入式硬件