每日一题力扣687
给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。
注意:两个节点之间的路径长度由它们之间的边数表示。
class Solution: def __init__(self): self.res =0 def longestUnivaluePath(self, root: TreeNode) -> int: def maxlen(node):#记录点输入的过程 if node ==None: return 0 left=maxlen(node.left)#对左右子树都这样 right=maxlen(node.right) if node.left:#如果点的左子树有,并且根节点的值等于左子树的值,就加一,否则为0 left=left+1 if node.left.val==node.val else 0 if node.right: right = right + 1 if node.right.val == node.val else 0 self.res = max(self.res, left+right) return max(left, right) maxlen(root) return self.res