Python編程把二叉樹打印成多行代碼
題目描述
從上到下按層打印二叉樹,同一層結(jié)點(diǎn)從左至右輸出。每一層輸出一行。
思路:
1、把每層節(jié)點(diǎn)的val值用list存好
2、把每層節(jié)點(diǎn)存好:
①計(jì)算當(dāng)層節(jié)點(diǎn)的個(gè)數(shù),這樣就保證下一步每層的結(jié)點(diǎn)都被pop光
②然后依次彈出從左到右的每個(gè)節(jié)點(diǎn),然后在list中加入該節(jié)點(diǎn)對應(yīng)的左結(jié)點(diǎn)、右節(jié)點(diǎn)(如果存在的話)
代碼如下:
class TreeNode():
def __init__(self,x):
self.val = x
self.left = None
self.right = None
def function(root):
result = []
if not root:
return result
A = []
A.append(root)
while A:
temp = []
size = len(A)
for Node in A:
temp.append(Node.val)
result.append(temp)
for i in range(size):
node = A.pop(0)
if node.left:
A.append(node.left)
if node.right:
A.append(node.right)
return result
總結(jié)
以上就是本文關(guān)于Python編程把二叉樹打印成多行代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
python練習(xí)之循環(huán)控制語句 break 與 continue
這篇文章主要介紹了python循環(huán)控制語句 break 與 continue,break就像是終止按鍵,不管執(zhí)行到哪一步,只要遇到break,不管什么后續(xù)步驟,直接跳出當(dāng)前循環(huán)2022-06-06
Python動(dòng)態(tài)屬性與反射機(jī)制方式
深入探索Python中的反射機(jī)制和動(dòng)態(tài)屬性的細(xì)節(jié),對我們來說是編寫具有適應(yīng)性和高可擴(kuò)展性程序的關(guān)鍵,本篇文章旨在通過詳盡的概念介紹和精心設(shè)計(jì)的代碼示例,加強(qiáng)您對這些核心概念的把握,并助您在實(shí)踐中運(yùn)用自如2024-06-06
使用Python和OpenCV進(jìn)行視覺圖像分割的代碼示例
在圖像處理領(lǐng)域,圖像分割是一項(xiàng)基礎(chǔ)且關(guān)鍵的技術(shù),它涉及到將圖像劃分為若干個(gè)具有特定屬性的區(qū)域,本文將通過一個(gè)實(shí)踐項(xiàng)目,展示如何使用Python編程語言,結(jié)合OpenCV庫,對一張玫瑰花的圖片進(jìn)行圖像分割,需要的朋友可以參考下2025-01-01
基于深度學(xué)習(xí)和OpenCV實(shí)現(xiàn)目標(biāo)檢測
這篇文章主要介紹了通過使用OpenCV進(jìn)行基于深度學(xué)習(xí)的對象檢測以及使用OpenCV檢測視頻,文中的示例代碼講解詳細(xì),需要的可以參考一下2021-12-12
Pycharm使用爬蟲時(shí)遇到etree紅線問題及解決
這篇文章主要介紹了Pycharm使用爬蟲時(shí)遇到etree紅線問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
使用python檢測網(wǎng)頁文本內(nèi)容屏幕上的坐標(biāo)
在 Web 開發(fā)中,經(jīng)常需要對網(wǎng)頁上的文本內(nèi)容進(jìn)行處理和操作,有時(shí)候,我們可能需要知道某個(gè)特定文本在屏幕上的位置,以便進(jìn)行后續(xù)的操作,所以本文將介紹如何使用 Python 中的 Selenium 和 BeautifulSoup 庫來檢測網(wǎng)頁文本內(nèi)容在屏幕上的坐標(biāo),需要的朋友可以參考下2024-04-04

