您现在的位置是:主页 > news > 利用c 做网站/企业网站制作费用
利用c 做网站/企业网站制作费用
admin2025/6/21 8:16:07【news】
简介利用c 做网站,企业网站制作费用,用qq号码可以做网站吗,b站大全收费2023入口在哪原题链接: Longest Univalue Path 求一条最长的路径,使得这条路径上节点的值都相同。 解题思路如下: 遍历二叉树中的每一个节点,计算以该节点为root点的满足题意的路径长度,取所有长度中最常的即可。这道题要注意的是…
利用c 做网站,企业网站制作费用,用qq号码可以做网站吗,b站大全收费2023入口在哪原题链接: Longest Univalue Path 求一条最长的路径,使得这条路径上节点的值都相同。 解题思路如下:
遍历二叉树中的每一个节点,计算以该节点为root点的满足题意的路径长度,取所有长度中最常的即可。这道题要注意的是…
原题链接: Longest Univalue Path
求一条最长的路径,使得这条路径上节点的值都相同。
解题思路如下:
- 遍历二叉树中的每一个节点,计算以该节点为root点的满足题意的路径长度,取所有长度中最常的即可。
- 这道题要注意的是,计算路径时,只有在root节点处允许分叉,从root往下延伸的节点不允许分叉(root以下产生分叉则不属于一条路径了),所以函数 findlongestpath的作用在于找出左右子树中的最常路径(不允许分叉),在遍历二叉树的时候如果发现root、root.left、root.right的值相等,那么取左右子树中路径最长并加二(因为这三个节点形成的长度为2的路径)
代码:
class Solution:def longestUnivaluePath(self, root):if root == None: return 0maxer = 0if root.left!=None and root.left.val==root.val and root.right!=None and root.right.val==root.val :maxer = max(self.findlongestpath(root.right)+self.findlongestpath(root.left)+2,maxer)print('circle 1')elif root.left!=None and root.left.val ==root.val:maxer =max(maxer,1+self.findlongestpath(root.left))print('circle 2')elif root.right!=None and root.right.val ==root.val:maxer =max(maxer,1+self.findlongestpath(root.right))maxer=max(maxer,self.longestUnivaluePath(root.right))maxer=max(maxer,self.longestUnivaluePath(root.left))return maxerdef findlongestpath(self,root):if root==None:return 0number = root.valif (root.left!=None and root.left.val ==number) and (root.right!=None and root.right.val==number):a=self.findlongestpath(root.left)+1b=self.findlongestpath(root.right)+1return max(a,b)if root.left!=None and root.left.val ==number:return self.findlongestpath(root.left)+1if root.right!=None and root.right.val==number:return self.findlongestpath(root.right)+1else:return 0