110.平衡二叉樹-C語言-創(chuàng)新互聯(lián)

題目來源:力扣

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比富蘊網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式富蘊網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋富蘊地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

題目描述:

給定一個二叉樹,判斷它是否是高度平衡的二叉樹。

本題中,一棵高度平衡二叉樹定義為:

一個二叉樹每個節(jié)點?的左右兩個子樹的高度差的絕對值不超過 1 。

示例 1:

輸入:root = [3,9,20,null,null,15,7]
輸出:true

示例 2:

輸入:root = [1,2,2,3,3,null,null,4,4]
輸出:false

示例 3:

輸入:root = []
輸出:true

代碼:

int maxDepth(struct TreeNode* root){
    if(root==NULL){
        return 0;
    }
    int leftDepth=maxDepth(root->left);
    int rightDepth=maxDepth(root->right);
    return leftDepth>rightDepth?leftDepth+1:rightDepth+1;
}

bool isBalanced(struct TreeNode* root){
    if(root==NULL){
        return true;
    }
    int leftDepth=maxDepth(root->left);
    int rightDepth=maxDepth(root->right);
    return abs(leftDepth-rightDepth)<2
    && isBalanced(root->left)
    && isBalanced(root->right);
}

思路:

我們要注意,我們需要判斷每一個節(jié)點的左右子樹是否都符合,而不是單純的根節(jié)點,我們要計算深度,首先寫出深度計算的代碼,然后我們保存左右子樹深度,使用abs函數(shù)計算差值,若小于2說明符合,然后遞歸調用計算root的左子樹和右子樹,三者用&&的關系,一個不符合直接退出,三個符合結果才符合,這樣每一個節(jié)點都可以判斷到

運行結果:

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當前名稱:110.平衡二叉樹-C語言-創(chuàng)新互聯(lián)
鏈接分享:http://muchs.cn/article18/cocsgp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航外貿(mào)網(wǎng)站建設、營銷型網(wǎng)站建設、電子商務、定制網(wǎng)站品牌網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作