這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎樣實(shí)現(xiàn)從上到下打印python二叉樹,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
10年品牌的成都網(wǎng)站建設(shè)公司,上1000+企業(yè)網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn).價(jià)格合理,可準(zhǔn)確把握網(wǎng)頁設(shè)計(jì)訴求.提供定制網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、小程序定制開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等服務(wù),我們設(shè)計(jì)的作品屢獲殊榮,是您值得信賴的專業(yè)的建站公司。
從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。
給定二叉樹: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
[3,9,20,15,7]
O(N)
O(N)
class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
# 方案1: 列表+for循環(huán)
if not root:
return []
q = [root]
for node in q:
# 只將非空子節(jié)點(diǎn)追加到隊(duì)列
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
return [x.val for x in q]
import collections
class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
# 方案2: 雙端隊(duì)列+while循環(huán)
if not root:
return []
q = collections.deque([root])
res = []
while q:
node = q.popleft()
res.append(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
return res
上述就是小編為大家分享的怎樣實(shí)現(xiàn)從上到下打印python二叉樹了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。