二叉树中的最大路径和-Python
方法: dfs,递归
def maxPathSum(root): max_sum = -float("inf") # 存放全局最大值 def dfs(root): nonlocal max_sum # 可修改上层函数变量 if not root: return 0 l = dfs(root.left) # 遍历左节点,返回子结构最大值 r = dfs(root.right) # 遍历右节点,返回子结构最大值 cur_sum = root.val # 假设当前值最大 if (l>0): cur_sum += l # 大于0,加入最大值中 if (r>0): cur_sum += r max_sum = max(max_sum, cur_sum) # 存储全局最大值 return max(l,r) + root.val if max(l,r)>0 else root.val # 返回当前节点子环节的最大值 dfs(root) return
时刻记着自己要成为什么样的人!