//

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

// //

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

// //

 

// //

示例 1:

// //

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

示例 2:

// //

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

 

// //

提示:

// //
    //
  1. 给定树的节点数范围是 [1, 100]
  2. //
  3. 每个节点的值都是整数,范围为 [0, 99] 。
  4. //
//
Related Topics
  • 深度优先搜索
  • 广度优先搜索
  • 二叉树

  • 👍 121
  • 👎 0
  • package leetcode.editor.cn; import com.code.leet.entiy.TreeNode; // 965:单值二叉树 public class UnivaluedBinaryTree { public static void main(String[] args) { Solution solution = new UnivaluedBinaryTree().new Solution(); // TO TEST } //leetcode submit region begin(Prohibit modification and deletion) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public boolean isUnivalTree(TreeNode root) { return isSame(root, root.val); } private boolean isSame(TreeNode node, int val) { if (node == null) { return true; } if (node.val != val) { return false; } boolean is = true; is = is && isSame(node.left, val); if (!is) { return false; } return is && isSame(node.right, val); } } //leetcode submit region end(Prohibit modification and deletion) }