LeetCode 250. Count Univalue Subtrees
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                LeetCode 250. Count Univalue Subtrees
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                原題鏈接在這里:https://leetcode.com/problems/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,
return?4.
題解:
bottom-up recursion. dfs返回當前root下是不是univalue tree.
Time Complexity: O(n).
Space: O(logn). height of tree.
AC Java:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 class Solution { 11 public int countUnivalSubtrees(TreeNode root) { 12 int [] res = {0}; 13 dfs(root, res); 14 return res[0]; 15 } 16 17 private boolean dfs(TreeNode root, int [] res){ 18 if(root == null){ 19 return true; 20 } 21 22 boolean left = dfs(root.left, res); 23 boolean right = dfs(root.right, res); 24 if(left && right){ 25 if(root.left!=null && root.left.val!=root.val){ 26 return false; 27 } 28 29 if(root.right!=null && root.right.val!=root.val){ 30 return false; 31 } 32 33 res[0]++; 34 return true; 35 } 36 37 return false; 38 } 39 }類似Longest Univalue Path.
轉載于:https://www.cnblogs.com/Dylan-Java-NYC/p/5187437.html
總結
以上是生活随笔為你收集整理的LeetCode 250. Count Univalue Subtrees的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: json对象数组按对象属性排序
- 下一篇: sed教程(七)之特殊字符
