当前位置: 首页> 健康> 母婴 > 【数据结构与算法 经典例题】单值二叉树的判断

【数据结构与算法 经典例题】单值二叉树的判断

时间:2025/8/23 9:17:18来源:https://blog.csdn.net/2302_78391795/article/details/140111330 浏览次数:0次

              💓 博客主页:倔强的石头的CSDN主页 

             📝Gitee主页:倔强的石头的gitee主页

   ⏩ 文章专栏:《数据结构与算法 经典例题》C语言

                                  期待您的关注

1b7335aca73b41609b7f05d1d366f476.gif

目录

一、问题描述

二、解题思路

三、C语言实现代码 


 

 

一、问题描述

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false

 

原题出自

965. 单值二叉树 - 力扣(LeetCode)

2de1c4d0dc7e4516a089d3fdef1954f2.jpeg

 

二、解题思路

实现思路:
将每个节点看做是根结点,与他的左孩子和右孩子的值进行对比是否相同

 

递归实现:

  • 如果节点为空,返回true
  • 再进行判断
  • 如果左孩子存在且左孩子的值不等于节点的值,返回false
  • 如果右孩子存在且右孩子的值不等于节点的值,返回false
  • 如果上述return都没有执行,说明这三个节点组成的树的值相同(如果左右孩子存在的话),进一步判断以左右孩子为根的子树是否值相同。分别递归调用函数,传递左右孩子的地址,如果返回的值都为true,则返回true(只有一种情况会返回true,就是递归至节点为空)

 

 

三、C语言实现代码 

//单值二叉树
bool isUnivalTree(BTNode* root)
{if (root == NULL)return true;if (root->left && root->left->data != root->data)return false;if (root->right && root->right->data != root->data)return false;return isUnivalTree(root->left) && isUnivalTree(root->right);}

ce2aae0ef4064969be0600a0a7559afe.png

 

关键字:【数据结构与算法 经典例题】单值二叉树的判断

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: