Leetcode 250: Count Univalue Subtrees
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.
For example:
Given binary tree,
5
/ \
1 5
/ \ \
5 5 5
return 4.
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * public int val; 5 * public TreeNode left; 6 * public TreeNode right; 7 * public TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public int CountUnivalSubtrees(TreeNode root) { 12 var count = new int[1]; 13 IsUnivalSubtree(root, count); 14 return count[0]; 15 } 16 17 private bool IsUnivalSubtree(TreeNode node, int[] count) 18 { 19 if (node == null) 20 { 21 return true; 22 } 23 24 bool left = IsUnivalSubtree(node.left, count); 25 bool right = IsUnivalSubtree(node.right, count); 26 27 if (left && right && ((node.left == null || node.val == node.left.val) && (node.right == null || node.val == node.right.val))) 28 { 29 count[0]++; 30 return true; 31 } 32 33 return false; 34 } 35 }

浙公网安备 33010602011771号