965-シングルツリー


前言
Weekly Contest 117の単一値ツリー:
ツリーの各ノードに同じ値がある場合、ツリーは単一のツリーです.
与えられたツリーが単一値のツリーである場合にのみ、trueが返される.そうでなければfalseを返します.
例1:
  :[1,1,1,1,1,null,1]
  :true

例2:
  :[2,2,2,5,2]
  :false

ヒント:
  • 所与のツリーのノード数の範囲は[1, 100]である.
  • 各ノードの値は整数であり、範囲は[0, 99]である.

  • 問題を解く構想.
    ローカルは簡単です.ルートノードの値を取得し、ツリーを巡るときにルートノードの値と比較するだけです.私が選んだのは、ツリーを階層的に巡ることです.
    インプリメンテーションコード
        /**
         * 965.      
         * @param root
         * @return
         */
        public boolean isUnivalTree(TreeNode root) {
            boolean flag = true;
            Queue 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;
        }