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; }