Python | Leetcode Python题解之第337题打家劫舍III
题目:
题解:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = Noneclass 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, v2return max(_rob(root))