单值二叉树:
示例一:
示例二:
代码:
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;
else
return isUnivalTree(root->right)
&&isUnivalTree(root->left);
}
本题思路:
分成三部分:自己,左子树,右子树
先判断自己跟自己的左孩子和右孩子的val是否相等,再判断左子树和右子树是否满足条件
这道题的精髓在于这两条判断条件,既解决了怎样判断root的左孩子或右孩子是否为空,又解决了root自己是否满足单值二叉树的条件