Python | Leetcode Python题解之第337题打家劫舍III

题目:

题解:

python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def rob(self, root: TreeNode) -> int:
        def _rob(root):
            if not root: return 0, 0  # 偷,不偷

            left = _rob(root.left)
            right = _rob(root.right)
            # 偷当前节点, 则左右子树都不能偷
            v1 = root.val + left[1] + right[1]
            # 不偷当前节点, 则取左右子树中最大的值
            v2 = max(left) + max(right)
            return v1, v2

        return max(_rob(root))
相关推荐
汤姆yu26 分钟前
基于python的化妆品销售分析系统
开发语言·python·化妆品销售分析
熬了夜的程序员34 分钟前
【LeetCode】89. 格雷编码
算法·leetcode·链表·职场和发展·矩阵
上去我就QWER1 小时前
Python下常用开源库
python·1024程序员节
程序员杰哥2 小时前
Pytest之收集用例规则与运行指定用例
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
Jyywww1213 小时前
Python基于实战练习的知识点回顾
开发语言·python
dragoooon343 小时前
[优选算法专题四.前缀和——NO.31~32 连续数组、矩阵区域和]
数据结构·算法·leetcode·1024程序员节
朝朝辞暮i3 小时前
从0开始学python(day2)
python
程序员黄同学3 小时前
Python中的列表推导式、字典推导式和集合推导式的性能和应用场景?
开发语言·python
AI小云3 小时前
【Python高级编程】类和实例化
开发语言·人工智能·python
道之极万物灭3 小时前
Python uv虚拟环境管理工具详解
开发语言·python·uv