leetcode 687 Longest Univalue Path
2018-01-02 16:15
411 查看
Java:
class Solution {
public int longestUnivaluePath(TreeNode root) {
int[] res=new int[1];
if(root != null) dfs(root,res);
return res[0];
}
private int dfs(TreeNode node,int[] res){
int l=node.left!=null?dfs(node.left,res):0;
int r=node.right!=null?dfs(node.right,res):0;
int lres=node.left!=null&&node.val==node.left.val?l+1:0;
int rres=node.right!=null&&node.val==node.right.val?r+1:0;
res[0]=Math.max(res[0],lres+rres);
return Math.max(lres,rres);
}
}
Pythonclass Solution:
def longestUnivaluePath(self, root):
"""
:type root: TreeNode
:rtype: int
"""
res=[0]
def dfs(node):
if not node:
return 0
l,r=dfs(node.left),dfs(node.right)
lres=(l+1) if node.left and node.left.val==node.val else 0
rres=(r+1) if node.right and node.right.val==node.val else 0
res[0]=max(res[0],lres+rres)
return max(lres,rres)
dfs(root)
return res[0]
class Solution {
public int longestUnivaluePath(TreeNode root) {
int[] res=new int[1];
if(root != null) dfs(root,res);
return res[0];
}
private int dfs(TreeNode node,int[] res){
int l=node.left!=null?dfs(node.left,res):0;
int r=node.right!=null?dfs(node.right,res):0;
int lres=node.left!=null&&node.val==node.left.val?l+1:0;
int rres=node.right!=null&&node.val==node.right.val?r+1:0;
res[0]=Math.max(res[0],lres+rres);
return Math.max(lres,rres);
}
}
Pythonclass Solution:
def longestUnivaluePath(self, root):
"""
:type root: TreeNode
:rtype: int
"""
res=[0]
def dfs(node):
if not node:
return 0
l,r=dfs(node.left),dfs(node.right)
lres=(l+1) if node.left and node.left.val==node.val else 0
rres=(r+1) if node.right and node.right.val==node.val else 0
res[0]=max(res[0],lres+rres)
return max(lres,rres)
dfs(root)
return res[0]
相关文章推荐
- [437]. Path Sum III,[687]. Longest Univalue Path
- LeetCode Weekly Contest 52 Longest Univalue Path(链表dfs)
- [LeetCode] Longest Univalue Path 最长相同值路径
- Leetcode算法学习日志-687 Longest Univalue Path
- Leetcode Longest Absolute File Path
- Longest Absolute File Path -- LeetCode
- leetcode_687. Longest Univalue Path ? 待解决
- LeetCode 388: Longest Absolute File Path
- [LeetCode] 687. Longest Univalue Path 最长唯一值路径
- leetcode 687. Longest Univalue Path
- leetcode 329. Longest Increasing Path in a Matrix
- LeetCode687. Longest Univalue Path
- Longest Increasing Path in a Matrix - LeetCode
- Leetcode329: Longest Increasing Path in a Matrix
- leetcode 329. Longest Increasing Path in a Matrix
- 【Leetcode】Longest Increasing Path in a Matrix
- [leetcode] 687. Longest Univalue Path
- LeetCode 329. Longest Increasing Path in a Matrix
- LeetCode-329.Longest Increasing Path in a Matrix
- Longest Univalue Path