Given a binary tree, count the number of uni-value subtrees.
A Uni-value subtree means all nodes of the subtree have the same value.
Example :
Input: root = [5,1,5,5,5,null,5] 5 / \ 1 5 / \ \ 5 5 5Output: 4
题意:
给定一棵二叉树,求所有节点都同值的二叉树。
思路:
dfs
代码:
1 class Solution { 2 int result; 3 public int countUnivalSubtrees(TreeNode root) { 4 result = 0; 5 helper(root); 6 return result; 7 } 8 9 private boolean helper(TreeNode node){10 if(node == null ) return true;11 12 boolean left = helper(node.left);13 boolean right = helper(node.right);14 15 if(left&&right){16 if ((node.left!= null && node.val != node.left.val) || (node.right!= null && node.val != node.right.val) ){17 return false;18 }19 result++;20 return true;21 } 22 return false;23 }24 }