#code: utf-8
# Definition for a binary tree node.
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def findTilt(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.res = 0
def sum(node):
if not node:
return 0
left = sum(node.left)
right = sum(node.right)
self.res += abs(left - right)
return node.val + left + right # sum of the total left tree
sum(root)
return self.res
0,参考代码
1,题目的要求:
需要注意的是,不仅仅是左右节点的值,而是整个左子树的和的值和右子树的值的和:
The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subtree node values. Null node has tilt 0.
2,left 和right分别记录左右子树的值,注意返回语句:
return node.val + left + right # sum of the total left tree