1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Go 刷 leetcode|二叉樹的直徑

        共 1612字,需瀏覽 4分鐘

         ·

        2020-08-09 05:42

        今天為大家講解 LeetCode 第 543 題,繼續(xù)為大家?guī)順涞念}目。

        題目描述

        給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結(jié)點路徑長度中的最大值。這條路徑可能穿過也可能不穿過根結(jié)點。

        示例 : 給定二叉樹

              1
        / \
        2 3
        / \
        4 5

        返回 3, 它的長度是路徑 [4,2,1,3] 或者 [5,2,1,3]。

        注意:兩結(jié)點之間的路徑長度是以它們之間邊的數(shù)目表示。

        來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/diameter-of-binary-tree 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

        解題思路

        遍歷每一個節(jié)點,計算每個節(jié)點最大直徑(左子樹深度+右子樹深度),更新全局變量ans。

        代碼實現(xiàn)

        //go

        //*?Definition?for?a?binary?tree?node.
        type?TreeNode?struct?{
        ?Val?int
        ?Left?*TreeNode
        ?Right?*TreeNode
        }

        var?ans?=?0
        func?diameterOfBinaryTree(root?*TreeNode)?int?{
        ?ans?=?0
        ?if?root?==?nil?{
        ??return?0
        ?}
        ?maxDepth(root)
        ?return?ans
        }

        //?節(jié)點node的最大深度
        func?maxDepth(node?*TreeNode)?int?{
        ?if?node?==?nil?{
        ??return?0
        ?}
        ?lhight?:=?maxDepth(node.Left)
        ?rhight?:=?maxDepth(node.Right)
        ?ans?=?max(ans,?lhight+rhight)?//將每個節(jié)點最大直徑(左子樹深度+右子樹深度)當前最大值比較并取大者
        ?return?max(lhight,?rhight)+1??//返回節(jié)點深度
        }

        func?max(x?int,?y?int)?int?{
        ?if?x?>?y?{
        ??return?x
        ?}else?{
        ??return?y
        ?}
        }
        //java
        class?Solution?{
        ????int?maxd=0;
        ????public?int?diameterOfBinaryTree(TreeNode?root)?{
        ????????depth(root);
        ????????return?maxd;
        ????}
        ????public?int?depth(TreeNode?node){
        ????????if(node==null){
        ????????????return?0;
        ????????}
        ????????int?Left?=?depth(node.left);
        ????????int?Right?=?depth(node.right);
        ????????maxd=Math.max(Left+Right,maxd);//將每個節(jié)點最大直徑(左子樹深度+右子樹深度)當前最大值比較并取大者
        ????????return?Math.max(Left,Right)+1;//返回節(jié)點深度
        ????}
        }

        鄭重聲明:

        所展示代碼已通過 LeetCode 運行通過,請放心食用~




        推薦閱讀



        學習交流 Go 語言,掃碼回復「進群」即可


        站長 polarisxu

        自己的原創(chuàng)文章

        不限于 Go 技術(shù)

        職場和創(chuàng)業(yè)經(jīng)驗


        Go語言中文網(wǎng)

        每天為你

        分享 Go 知識

        Go愛好者值得關(guān)注


        瀏覽 41
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            freehdxxxxmoviejapan | 啊~嗯~我下水好多水网站 | 成人做爰A片100部免费 | 国产福利网站 | 国产在线观看www | 一本大道av | 插鸡巴网站 | 岳乳丰满一区二区三区 | 中文字幕成人在线播放 | 啊灬用力灬啊灬啊灬啊灬高潮了 |