二叉树中的最大路径和-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 
复制代码

 

posted @   今夜无风  阅读(291)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2018-09-08 pandas的replace方法
2018-09-08 python的tqdm模块
2018-09-08 pandas的merge方法
2018-09-08 pandas的drop函数
2018-09-08 2018-文本分类文献阅读总结
2018-09-08 pandas的concat方法
2018-09-08 tensorflow和python操作中的笔记
点击右上角即可分享
微信分享提示