leetcode[Binary Tree Tilt]//待整理多种解法

来源:互联网 发布:英语流利说 知乎 编辑:程序博客网 时间:2024/06/05 09:58

解法一:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {//基本思路,遍历二叉树,在遍历过程中,对于每一个结点,求其左右子树的差的绝对值,记为d,然后将每一个结点的d求和private int sum(TreeNode root){if(root == null) return 0;return root.val + sum(root.left) + sum(root.right);}private int findSumDistRecurse(TreeNode root){//在这里遍历二叉树if(root == null) return 0;//Math.abs(sum(root.left) - sum(root.right))代表根节点的d,也需要给出递归示范return Math.abs(sum(root.left) - sum(root.right)) + findSumDistRecurse(root.left) + findSumDistRecurse(root.right);}    public int findTilt(TreeNode root) {        return findSumDistRecurse(root);    }}


阅读全文
1 0
原创粉丝点击