第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學(xué)習(xí)打卡】第13天 數(shù)據(jù)結(jié)構(gòu)之“樹”

標(biāo)簽:
JavaScript

课程名称:JavaScript版数据结构与算法
课程章节:第8章 数据结构之“树”
主讲老师:lewis

课程内容:

今天学习的内容包括:
8-5 LeetCode:104. 二叉树的最大深度——基于深度优先遍历获取二叉树的最大深度。
8-6 LeetCode:111. 二叉树的最小深度——基于广度优先遍历获取二叉树的最小深度。

课程收获:

二叉树的最大深度

1、为了更好的理解二叉树的最大深度获取方法,在这里先复习下深度优先遍历:尽可能的搜索树的分支,对子节点按哥进行深度优先遍历,直至无节点。
2、因此我们在二叉树进行深度优先遍历时,获取到最大的层数就可以了,也就是最大深度。

var maxDepth = function(root) {
    let res = 0
    const dfs = (n,l) =>{
        if(!n) return
        if(!n.left && !n.right){
            res = Math.max(res,l)
        }
        dfs(n.left,l+1)
        dfs(n.right,l+1)
    }
    dfs(root,1)
    return res
};

二叉树的最小深度

1、为了更好的理解二叉树的最小深度获取方法,在这里先复习下广度优先遍历:基于队列的先进先出,把子节点挨个入队,然后出队。
2、因此我们在二叉树进行广度优先遍历时,当出队的节点无子节点时,返回当前的层级就可以了,也就是最小深度。

var minDepth = function(root) {
    if(!root) return 0
    let q = [[root,1]]
    while(q.length){
        const [n,l] = q.shift()
        if(!n.left && !n.right){
            return l
        }
        if(n.left) q.push([n.left,l+1])
        if(n.right) q.push([n.right,l+1])
    }
};

今天重新看了下昨天的先中后序的算法,通过堆栈实现,理解了,感觉很快就会忘掉,今天学习了二叉树的最大深度、最小深度,是基于前天学习的深度广度优先遍历实现,由此可见算法是持续性的,需要不断学习,也需要不断复习,不断的实践,对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

​​​​https://img1.sycdn.imooc.com//62fb53250001504b22861226.jpg

https://img1.sycdn.imooc.com//62fb59fa00016c7c22861226.jpg

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消