# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def dp(self, cur):
if not cur :
return [0,0]
l = self.dp(cur.left)
r = self.dp(cur.right)
return [max(l)+max(r),cur.val+l[0]+r[0]]
def rob(self, root):
return max(self.dp(root))