【C语言题解】 | 965. 单值二叉树
2024-01-09 13:27:01
965. 单值二叉树
提示:
- 给定树的节点数范围是 [1, 100]。
- 每个节点的值都是整数,范围为 [0, 99] 。
这个题目我们通过分治思想来解题:
首先传入的是根节点
其次判断根节点是否有左子树和右子树,若存在则判断左右子树的值是否于根节点的值相同(不同则返回false,相同则继续)
if(root->left && root->left->val != root->val
{
return false;
}
if(root->right && root->right->val != root->val
{
return false;
}
若正确,则继续向下递归,但是由于此题目要求返回true
or flase
,所以,我们需要返回
return isUnivalTree(root->left) &&
isUnivalTree(root->right);
因为是左右子树都必须满足,所以是 &&
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
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;;
}
return isUnivalTree(root->left) &&
isUnivalTree(root->right);
}
文章来源:https://blog.csdn.net/jokr_/article/details/135459214
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!