前言

Weekly Contest 117单值二叉树

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

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

示例1:
screen-shot-2018-12-25-at-50104-pm.png

输入:[1,1,1,1,1,null,1]
输出:true

示例2:
screen-shot-2018-12-25-at-50050-pm.png

输入:[2,2,2,5,2]
输出:false

提示:

  1. 给定树的节点数范围是 [1, 100]
  2. 每个节点的值都是整数,范围为 [0, 99]

解题思路

本地十分简单,只需先获取根节点的值,然后遍历树时与根节点的值做比较即可。我选择使用的是层序遍历二叉树。

实现代码

    /**
     * 965. 单值二叉树
     * @param root
     * @return
     */
    public boolean isUnivalTree(TreeNode root) {
        boolean flag = true;
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        //获取初始值
        int val=root.val;
        //当前遍历的节点
        TreeNode current=null;
        while(queue.size()!=0){
            current=queue.poll();
            if(current.val!=val){
                flag=false;
                break;
            }
            if(current.left!=null){
                queue.offer(current.left);
            }
            if(current.right!=null){
                queue.offer(current.right);
            }
        }
        return flag;
    }

Null
137 声望31 粉丝

免费的东西是最贵的,好走的只是下坡路


下一篇 »
970-强整数