250.统计同值子树

1. 题目

给定一个二叉树,统计该二叉树数值相同的子树个数

同值子树是指该子树的所有节点都拥有相同的数值

2. 解题

后序遍历,叶子节点肯定是一个同值子树

判断根节点和左右子树是否同值

3. 代码

    bool dfs(TreeNode* root)
    {
        if(!root) return true;
        bool l = dfs(root->left);//左子树都一样吗?
        bool r = dfs(root->right);
        if(!l || !r || (root->left && root->val != root->left->val) 
            ||(root->right && root->val != root->right->val))        
            return false;//左右子树有不一样 or root值跟左右不相等
        count++;
        return true;
    }
posted @ 2021-04-19 13:47  赫拉克利特  阅读(355)  评论(0编辑  收藏  举报