[687][简单][DFS] 最长同值路径
最后更新于
最后更新于
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def longestUnivaluePath(self, root: TreeNode) -> int:
res = float('-inf')
def dfs(node):
if node is None:
return dict()
value = node.val
left_map = dfs(node.left)
right_map = dfs(node.right)
total = left_map.get(value, 0) + right_map.get(value, 0) + 1
nonlocal res
res = max(res, total)
return {value: 1 + max(left_map.get(value, 0), right_map.get(value, 0))}
dfs(root)
return res - 1 if res != float('-inf') else 0