【LeetCode】687.Longest Univalue Path(Easy)解题报告
2017-11-22 09:39
375 查看
【LeetCode】687.Longest Univalue Path(Easy)解题报告
题目地址:https://leetcode.com/problems/longest-univalue-path/description/
题目描述:
Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root.
Note: The length of path between two nodes is represented by the number of edges between them.
Note: The given binary tree has not more than 10000 nodes. The height of the tree is not more than 1000.
要有一种大局观,一个方法给我返回单独子树的最大长度,然后自己比较根节点和左右子树根节点的值就可以了。
Solution:
Date:2017年11月22日
题目地址:https://leetcode.com/problems/longest-univalue-path/description/
题目描述:
Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root.
Note: The length of path between two nodes is represented by the number of edges between them.
Example 1: Input: 5 / \ 4 5 / \ \ 1 1 5 Output: 2 Example 2: Input: 1 / \ 4 5 / \ \ 4 4 5 Output: 2
Note: The given binary tree has not more than 10000 nodes. The height of the tree is not more than 1000.
要有一种大局观,一个方法给我返回单独子树的最大长度,然后自己比较根节点和左右子树根节点的值就可以了。
Solution:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } Time complexity: O(n) Space complexity: O(logn) */ class Solution { public int res = 0; public int longestUnivaluePath(TreeNode root) { caculate(root); return res; } //返回单独子树的最大长度 public int caculate(TreeNode root){ if(root==null){ return 0; } int leftCount = caculate(root.left); int rightCount = caculate(root.right); int left=0,right=0; if(root.left!= ae36 null && root.left.val == root.val){ left = leftCount + 1; } if(root.right!=null && root.right.val == root.val){ right = rightCount + 1; } res = Math.max(res,left+right); //返回一边子树的最大值 return Math.max(left,right); } }
Date:2017年11月22日
相关文章推荐
- 【leetcode】687. Longest Univalue Path解题报告
- 【LeetCode】687. Longest Univalue Path 解题报告
- [Leetcode] 687. Longest Univalue Path 解题报告
- 【LeetCode】235.Lowest Common Ancestor of a Binary Search Tree(Easy)解题报告
- 【LeetCode】113.Path Sum II(Medium)解题报告
- [Leetcode] 656. Coin Path 解题报告
- 【LeetCode】53.Maximum Subarray(Easy)解题报告
- LeetCode解题报告 110. Balanced Binary Tree [easy]
- LeetCode解题报告 257. Binary Tree Paths [easy]
- LeetCode 64. Minimum Path Sum 解题报告
- 【LeetCode】628.Maximum Product of Three Numbers(Easy)解题报告
- LeetCode解题报告 101. Symmetric Tree [easy]
- [LeetCode] Path Sum II 解题报告
- LeetCode解题报告 1. Two Sum[easy]
- LeetCode】101.Symmetric Tree(Easy)解题报告
- LeetCode: Path Sum 解题报告
- 【LeetCode】88.Merge Sorted Array(easy)解题报告
- [leetcode] 71. Simplify Path 解题报告
- LeetCode64 minPathSum 解题报告
- LeetCode解题报告 111. Minimum Depth of Binary Tree [easy]