算法挑战47: 单值二叉树

4 阅读1分钟

题目

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

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

思路

先把根节点值取出来,记录

然后递归遍历左右子树

每次遍历到一个节点

就比较当前节点的值和根节点的值是否一致

不一致就false

然后递归左右子树

两个子树都是true才返回true

有一个是false就说明不一致

不是单色树

代码

var isUnivalTree = function(root) {
    const target = root.val;

    function dfs(node){
        if(node === null)return true;

        if(node.val !== target)return false;

        return dfs(node.left) && dfs(node.right);
    }

    return dfs(root);
};