2020-05-25 【965. 单值二叉树】

2020-05-25  本文已影响0人  Spring_java

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

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

迭代

 List<Integer> data=new ArrayList();
    public boolean isUnivalTree(TreeNode root) {
        if(null==root){
            return true;
        }
        dfs(root);
        for(Integer num:data){
            if(num!=data.get(0)){
                return false;
            }
         
        }
        return true;
    }

    public void dfs(TreeNode root){
        if(null!=root){
            data.add(root.val);
            dfs(root.left);
            dfs(root.right);
        }
    }

先设置一个全局变量。记录第一个节点的值,然后递归遍历看是否相等

int num=0;
    public boolean isUnivalTree(TreeNode root) {
        if(null==root){
            return true;
        }
        num=root.val;
       return helper(root);

    }

    public boolean helper(TreeNode root){

        if(null==root){
            return true;
        }
        return (root.val==num) && helper(root.left) && helper(root.right);
    }
上一篇 下一篇

猜你喜欢

热点阅读