题目链接:https://leetcode.com/problems/binary-tree-tilt/#/description
注意:titl的定义是儿子节点的和的绝对值之和
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int findTilt(TreeNode* root) {
int k=0;
getSum(root,k);
return k;
}
// 获取root的节点和;k统计每个节点的差值
int getSum(TreeNode* root,int& k){
if(root==NULL) return 0;
int ll=getSum(root->left,k);
int rr=getSum(root->right,k);
k+=abs(ll-rr);
// 该树的节点和;
return ll+rr+root->val;
}
};