代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
typedef struct TreeNode TreeNode;
bool isUnivalTree(struct TreeNode* root) {
//根节点为空就返回true,为空不代表不是单值二叉数
if(root == NULL)
{
return true;
}
//代码走到这就说明根节点不为空,就先根左孩子比较,前提是左孩子不为空
//如果根节点等于左孩子说明不了什么,所以条码要判断不等于,不等于左孩子的话就返回false
if(root->left && root->val != root->left->val)
{
return false;
}
//根节点继续跟右孩子比较
if(root->right && root->val != root->right->val)
{
return false;
}
//递归
return isUnivalTree(root->left) && isUnivalTree(root->right);
}
提交结果:
递归流程: