目录
题目
深度优先搜索方法
正确的写法
题目
965. 单值二叉树 - 力扣(LeetCode)
深度优先搜索方法
什么是深度优先搜索:深度优先搜索(DFS)是一种图或树的遍历算法,它从起始节点开始,尽可能深地沿着一条路径探索,直到无法继续前进,然后回溯到上一个节点,选择另一条未探索的路径继续搜索。
判断一棵树是否为单值二叉树,即所有节点的值都相同
使用递归方式遍历整棵树
判断条件分为三部分:
- 当前节点的左子节点(如果存在)的值必须等于当前节点的值
- 当前节点的右子节点(如果存在)的值必须等于当前节点的值
- 左子树和右子树各自也必须是单值二叉树
如果以上条件都满足,则整棵树是单值二叉树
递归的终止条件是遇到空节点(返回true)或发现不同值的节点(返回false)
正确的写法
class Solution {
public:
bool isUnivalTree(TreeNode* root) {
if(!root)
{
return true;
}
if(root->left && root->left->val != root->val)
{
return false;
}
if(root->right && root->right->val != root->val)
{
return false;
}
bool Aresult = isUnivalTree(root->left);
bool Bresult = isUnivalTree(root->right);
return Aresult && Bresult;
}
};