zoukankan      html  css  js  c++  java
  • Leetcode563. 二叉树的坡度

    题意

    求每个节点的左子树的节点之和和右子树节点之和的差的绝对值

    思路

    • 其实就是二叉树高度的变种,在二叉树高度的题目里面求的是左右子树的高度,这里求的是子树的节点之和,先看求二叉树高度的代码⬇️
    public int maxDepth(TreeNode root) {
        if(root == null) return 0;
    
        int left = maxDepth(root.left);
        int right = maxDepth(root.right);
        
        return 1 + Math.max(left, right);
    }
    
    • 要修改的地方是 return 的东西,此时不是要求二叉树的高度,而是要求节点之和,而节点之和显然等于左子树的节点之和 + 右子树节点之和 + 当前节点的值
    • 另外因为要计算所有节点的所以要多一句计算语句

    代码(Java)

    class Solution {
        private int sumDegree = 0;
    
        private int calculate(TreeNode root) {
            if(root == null) return 0;
    
            int left = calculate(root.left);
            int right = calculate(root.right);
    
            sumDegree += Math.abs(left - right);
            return left + right + root.val;
        }
    
        public int findTilt(TreeNode root) {
            int allDegree = calculate(root);
            return sumDegree;
        }
    }
    

    代码(Python)

    class Solution:
        sumDegree = 0
        def findTilt(self, root: TreeNode) -> int:
            def calculate(root):
                if not root: return 0
    
                left = calculate(root.left)
                right = calculate(root.right)
    
                self.sumDegree += abs(left - right)
                return left + right + root.val
            calculate(root)
            return self.sumDegree
    
    如有转载,请注明出处QAQ
  • 相关阅读:
    电感和感抗
    电容和容抗
    ULN2003A驱动12V继电器
    5V转3.3V(TPS73101)
    电解电容和钽电容的区别
    svn 报错 Previous operation has not finished; run 'cleanup' if it was interrupted
    html格式 保持原样输出的标签
    微信公众号开发
    Hibernate各种主键生成策略与配置详解
    SVN符号说明
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/15099458.html
Copyright © 2011-2022 走看看