题目


解题思路
题解
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { int tilt = 0; public int findTilt(TreeNode root) { helper(root); return tilt; } public int helper(TreeNode node) { if(node == null ) { return 0; // 空节点返回0 } int leftSum = helper(node.left); // 左子树之和 int rightSum = helper(node.right); // 右子树之和 tilt += Math.abs(leftSum-rightSum); // 总坡度存储在全局变量 tilt 中 return leftSum + rightSum + node.val; // 返回值是子树之和 }}