这段时间重温一下C++编程
124. 二叉树中的最大路径和
深度优先搜索
维护一个全局最优值,对于每个节点其可能最大值 在(节点值 ,以及左右子节点是否选择)中
但是题目要求的是路径 而不是子树 (需要注意)
所以对于 某个父节点 选择该子节点的 最优值时 需要排除 其子节点左右都连接的情况,
所以递归的返回和最大值的维护稍有不同
class Solution:
def maxPathSum(self, root: Optional[TreeNode]) -> int:
res = -1000
def dfs(node):
nonlocal res
if not node :
return -1000
tmpl,tmpr = dfs(