如何從上到下打印python二叉樹,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
為任城等地區(qū)用戶提供了全套網頁設計制作服務,及任城網站建設行業(yè)解決方案。主營業(yè)務為成都網站設計、成都做網站、任城網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
請實現一個函數按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類推。
給定二叉樹: [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:
# 從右向左的話只需要將該層的值翻轉加入結果中即可
res.append(cur[::-1])
# 每一層結束后都調轉方向
fromleft = not fromleft
q = q[curlen:]
return res
看完上述內容,你們掌握如何從上到下打印python二叉樹的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!