LeetCode - 965. 单值二叉树

目录

题目

深度优先搜索方法

正确的写法


题目

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;
    }
};

你可能感兴趣的:(算法,leetcode,职场和发展)