leetcode965

题目

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

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

 

示例 1:

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

示例 2:

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

 

提示:

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

解题思路

运用递归的思想。

 

代码

class Solution {
public:
    bool isUnivalTree(TreeNode* root) {
        if(!root) return true;
        return isUnival(root,root->val);
    }
    bool isUnival(TreeNode* root, int val){
        if(!root) return true;
        if(root->val != val) return false;
        return isUnival(root->left,val) && isUnival(root->right,val);
    }
};

 

posted @ 2019-02-22 10:57  yxl2019  阅读(91)  评论(0编辑  收藏  举报