美文网首页每日打卡
2021-11-18 563. 二叉树的坡度

2021-11-18 563. 二叉树的坡度

作者: 16孙一凡通工 | 来源:发表于2021-11-18 10:03 被阅读0次

    本来是一道简单题,但是Go版本不知怎的,内部逻辑正确,就是结果不对,之前也存在这种情况,一般都是在定义全局变量之后存在这种现象,可能是内存泄露?java在类里面定义没有任何异常,很迷
    解题思路:通过计算每个节点的坡度,即计算左右节点和的差值的绝对值,递归即可实现

    java版本:

    class Solution {
        int ans;
        public int findTilt(TreeNode root) {
            if(root==null){
                return 0;
            }
            calulate(root);
            return ans;
        }
        public int calulate(TreeNode root){
            if(root==null){
                return 0;
            }
            int l=calulate(root.left),r=calulate(root.right);
            ans+=Math.abs(l-r);
            return l+r+root.val;
        }
    }
    

    Go版本

    import "fmt"
    // var res_value int=0;
    // var left_value int=0;
    // var right_value int=0;
    func findTilt(root *TreeNode) int {
        // 二叉树遍历
       if root==nil{
           return 0
       }
        return findTilt(root.Left)+findTilt(root.Right)+abs(calulate(root.Left),calulate(root.Right))
    }
    func  abs(num1 int, num2 int)int{
     if num1>num2{
         return num1-num2
     }
     return num2-num1
    }
    func calulate(root *TreeNode)int{
     if root==nil{
            return 0;
        }
        return calulate(root.Left)+calulate(root.Right)+root.Val  
    }
    

    相关文章

      网友评论

        本文标题:2021-11-18 563. 二叉树的坡度

        本文链接:https://www.haomeiwen.com/subject/jfjdtrtx.html