本文主要是介绍687. 最长同值路径(python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。
注意:两个节点之间的路径长度由它们之间的边数表示。
示例 1:
输入:
5/ \4 5/ \ \1 1 5
输出:
2
示例 2:
输入:
1/ \4 5/ \ \4 4 5
思路:
用递归的思想,因为任何一个最小路径都会有一个根,我们从根开始不断左右搜索,维护最大值
class Solution:def longestUnivaluePath(self, root: TreeNode) -> int:self.ans=0def find_row(node):if not node:return 0left_len=find_row(node.left)right_len=find_row(node.right)left_row=right_row=0if node.left and node.left.val==node.val:#判断左端点存在并且值相等left_row=left_len+1if node.right and node.right.val==node.val:right_row=right_len+1self.ans=max(self.ans,left_row+right_row)return max(left_row,right_row)find_row(root)return self.ans
这篇关于687. 最长同值路径(python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!