摘要:題目描述舉例題目分析找從任意節點出發的任意路徑的最大長度。每個都有可能是其他路徑上的,這種情況要,。每個都有可能作為中心,此時要左側之前的路徑最長長度,左側之前的路徑最長長度,此為中心時候的長度將這個分析單元遞歸封裝,即可實現目標。
題目描述:
Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-childconnections. The path must contain at least one node and does not need
to go through the root.舉例:
Given the below binary tree, 1 / 2 3 Return 6.
題目分析: 找從任意節點出發的任意路徑的最大長度。 每個node都有可能是其他路徑上的node,這種情況要max(left,right)。如此循環。 每個node都有可能作為中心node,此時要max(左側之前的路徑最長長度,左側之前的路徑最長長度,此node為中心時候的長度) 將這個分析單元遞歸封裝,即可實現目標。 # Definition for a binary tree node. class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: def dfs(self,node): ls = rs = None lmv = rmv = 0 if node.left: lmv,ls=self.dfs(node.left) lmv=max(lmv,0) if node.right: rmv,rs=self.dfs(node.right) rmv=max(rmv,0) # print(lmv,rmv,ls,rs) mv=node.val+max(lmv,rmv) sv=node.val+lmv+rmv # mv=node.val trans_list=[elem for elem in [sv,ls,rs] if elem] if not trans_list: trans_list=[0] return mv,max(trans_list) def maxPathSum(self, root): """ :type root: TreeNode :rtype: int """ if not root: return mv,smv=self.dfs(root) return max(mv,smv) if __name__=="__main__": tn=TreeNode(2) tn1=TreeNode(-1) tn2=TreeNode(-2) tn.left=tn1 tn.right=tn2
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41490.html
摘要:復雜度思路對于每一節點,考慮到這一個節點為止,所能形成的最大值。,是經過這個節點為止的能形成的最大值的一條支路。 Leetcode[124] Binary Tree Maximum Path Sum Given a binary tree, find the maximum path sum. For this problem, a path is defined as any se...
摘要:題目要求題目要求從二叉樹中找到任意兩個節點構成的一條路徑,該路徑上節點的和為最大。其實在這里我們通過遞歸的方法可以發現以下幾種場景當前節點作為起始節點當前節點不是起始節點首先我們以當前節點作為根節點,找到可能構成的最大路徑值。 題目要求 Given a binary tree, find the maximum path sum. For this problem, a path i...
Problem Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child co...
摘要:但是本題的難點在于,使用遞歸實現,但是前面的第四種情況不能作為遞歸函數的返回值,所以我們需要定義兩個值,代表單邊路徑的最大值,用于遞歸用于和回路的較大值。 Binary Tree Maximum Path SumGiven a binary tree, find the maximum path sum. For this problem, a path is defined as a...
摘要:棧迭代復雜度時間空間遞歸棧空間對于二叉樹思路首先我們分析一下對于指定某個節點為根時,最大的路徑和有可能是哪些情況。代碼連接父節點的最大路徑是一二四這三種情況的最大值當前節點的最大路徑是一二三四這四種情況的最大值用當前最大來更新全局最大 Binary Tree Maximum Path Sum Given a binary tree, find the maximum path sum...
閱讀 3683·2021-11-16 11:41
閱讀 2891·2021-09-23 11:45
閱讀 695·2019-08-30 15:44
閱讀 548·2019-08-30 13:10
閱讀 1966·2019-08-30 12:49
閱讀 3534·2019-08-28 17:51
閱讀 1483·2019-08-26 12:20
閱讀 707·2019-08-23 17:56