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

本來是一道簡單題,但是Go版本不知怎的,內(nèi)部邏輯正確,就是結(jié)果不對,之前也存在這種情況,一般都是在定義全局變量之后存在這種現(xiàn)象,可能是內(nèi)存泄露?java在類里面定義沒有任何異常,很迷
解題思路:通過計算每個節(jié)點的坡度,即計算左右節(jié)點和的差值的絕對值,遞歸即可實現(xiàn)

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  
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容