337. House Robber III - cocoder39/coco39_LC GitHub Wiki

337. House Robber III

class Solution:
    def rob(self, root: Optional[TreeNode]) -> int:
        return max(self.helper(root))
    
    def helper(self, root: TreeNode) -> List[int]:
        if not root:
            return [0, 0]
        
        left = self.helper(root.left)
        right = self.helper(root.right)
        
        notRob = max(left) + max(right)
        rob = root.val + left[0] + right[0]
        return [notRob, rob]