您好,登錄后才能下訂單哦!
如何從上到下打印python二叉樹,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
請實現(xiàn)一個函數(shù)按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類推。
給定二叉樹: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
[
[3],
[20,9],
[15,7]
]
劍指 Offer 32 - II. 從上到下打印二叉樹 II - leetcode 劍指offer系列
, 我們是單獨打印每一層的節(jié)點, 只不過都是從左到右的方向O(N)
O(N)
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
res = []
if not root:
return res
q = [root]
# 初始從左到右遍歷
fromleft = True
while q:
curlen = len(q)
cur = []
for node in q[:curlen]:
cur.append(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
if fromleft:
res.append(cur)
else:
# 從右向左的話只需要將該層的值翻轉(zhuǎn)加入結(jié)果中即可
res.append(cur[::-1])
# 每一層結(jié)束后都調(diào)轉(zhuǎn)方向
fromleft = not fromleft
q = q[curlen:]
return res
看完上述內(nèi)容,你們掌握如何從上到下打印python二叉樹的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。