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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

此二叉樹的中序遍歷中是如何跳回到callback()處的

此二叉樹的中序遍歷中是如何跳回到callback()處的

慕桂英546537 2019-02-19 21:19:24
代碼:代碼內(nèi)容為二叉樹的中序遍歷。在調(diào)試代碼的時候,斷點設(shè)到44行,然后點擊6次按步執(zhí)行代碼后,此時node為null,即key=1節(jié)點的左孩子,因為不滿足node !== null的條件,所以大括號內(nèi)代碼沒有執(zhí)行,跳到了49行,到此為止都明白,但是再按步執(zhí)行一次就跳到回46行了,不解,這是怎么實現(xiàn)的?求指教~謝謝!樹結(jié)構(gòu)如下圖:
查看完整描述

2 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊

因為中序遍歷先遍歷左側(cè)的節(jié)點,遍歷完后會執(zhí)行操作,再遍歷右側(cè)節(jié)點。
你觀察到 node 為 null 時,相當(dāng)于 1 左側(cè)的節(jié)點已經(jīng)遍歷完了,也就是inOrderTraverseNode(node.left,callback)這行代碼已經(jīng)執(zhí)行完畢。所以會執(zhí)行下一行,也就是callback(node.key);。

查看完整回答
反對 回復(fù) 2019-02-26
?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗 獲得超2個贊

就是一個遞歸的過程,在inOrderTraverseNode這個方法中,每次判斷當(dāng)前節(jié)點是不是null,不是null就接著執(zhí)行inOrderTraverseNode(node.left,callback);,就是遍歷左子樹,一旦遍歷到左子樹的葉子結(jié)點后一個,此時就是null了,if里面就不會就不會執(zhí)行,就會跳轉(zhuǎn)到遞歸的上一步,也是就是左子樹的葉子結(jié)點(null節(jié)點的上一個),這時程序是處于if判斷里面的,而inOrderTraverseNode(node.left,callback);這條語句執(zhí)行過了,所以就執(zhí)行下面一條語句,就是你的callback,輸出key,又執(zhí)行下一條語句inOrderTraverseNode(node.right,callback);,即從右子樹開始中序遍歷。


總結(jié):什么時候開始執(zhí)行callback?

遞歸調(diào)用結(jié)束后,在回溯的時候調(diào)用callback


查看完整回答
反對 回復(fù) 2019-02-26
  • 2 回答
  • 0 關(guān)注
  • 638 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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