您的位置:首页 > 产品设计 > UI/UE

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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode java python