LeetCode每日一题:单值二叉树

玄德 2022-05-24 15:05:28

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false。

示例 1:

输入:[1,1,1,1,1,null,1]
输出:true

示例 2:

输入:[2,2,2,5,2]
输出:false

提示:

  •     给定树的节点数范围是 [1, 100]。
  •     每个节点的值都是整数,范围为 [0, 99] 。

方法一:DFS

C:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isUnivalTree(struct TreeNode* root){
    if (!root) {
        return true;
    }
    if (root->left) {
        //判断当前节点与下一个节点是否相同
        if (root->val != root->left->val || !isUnivalTree(root->left)) {
            return false;
        }
    }
    if (root->right) {
        //判断当前节点与下一个节点是否相同
        if (root->val != root->right->val || !isUnivalTree(root->right)) {
            return false;
        }
    }
    return true;
}

一行代码:

bool isUnivalTree(struct TreeNode* root){
    return root->left && !(root->val == root->left->val && isUnivalTree(root->left)) || root->right && !(root->val == root->right->val && isUnivalTree(root->right)) ? false : true; 
}

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/univalued-binary-tree
2022.5.24

...全文
74 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-数据结构与算法 发布问题, 以便更快地解决您的疑问

30,331

社区成员

发帖
与我相关
我的任务
社区描述
打造最热爱学习的高校社区,帮助大家提升计算机领域知识,带大家打比赛拿奖,提高自我,希望大家共同创造良好的社区氛围。
社区管理员
  • 川川菜鸟
  • 亡心灵
  • 星辰菜鸟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

监督大家学习,每日学习打卡,以投稿形式打卡。扫码关注公众号,可加入粉丝群和领取大量资源。

试试用AI创作助手写篇文章吧