二叉数-965.单值二叉数-力扣(LeetCode)
一、题目解析
顾名思义,就是二叉树中所存储的值是相同,如果有不同则返回false
二、算法原理
对于二叉树的遍历,递归无疑是最便捷、最简单的方法,本题需要用到递归的思想。
采取前序遍历的方法,即根、左、右。
我们判断时需要判断节点是否存在,在此基础上才能去比较val的值是否与根节点的相同
返回值是左子树递归完成和右子树递归完成的结果,如果左子树递归失败则结果合并为false,右子树同理。
当递归到叶子节点(即左右为空的节点)时,可以返回true,递归往上
递归原理不难,但是难的是递归展开图,可以思考后自己实现
链接:965. 单值二叉树 - 力扣(LeetCode)
三、代码示例
class Solution {
public:bool isUnivalTree(TreeNode* root) {if(root == nullptr)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);}
};
看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见!