面試題32.2:把二叉樹打印成多行

題目描述

從上到下按層打印二叉樹,同一層結(jié)點(diǎn)從左至右輸出。每一層輸出一行。

知識(shí)點(diǎn)

二叉樹,隊(duì)列


Qiang的思路

這道題和面試題32.1相比理肺,多了分行輸出這個(gè)要求。在上一題的基礎(chǔ)上禁漓,這個(gè)也很簡單實(shí)現(xiàn)。因?yàn)槿绻覀冊诟?jié)點(diǎn)后面添加一個(gè)行結(jié)束的標(biāo)志位孵睬,那么當(dāng)該行全部遍歷完之后播歼,我們只需要把該標(biāo)志位放到隊(duì)列的最末端,這樣就相當(dāng)于在第二行最后面又多了一個(gè)標(biāo)志位掰读,那么便可以區(qū)分什么時(shí)候需要換行了荚恶。

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回二維列表[[1,2],[4,5]]
    def Print(self, pRoot):
        # write code here
        if pRoot==None:
            return []
        result=[]
        l=['#', pRoot]
        while l!=['#']:
            c=l.pop(0)
            if c=='#':
                result.append([])
                l.append('#')
                continue
            result[-1].append(c.val)
            if c.left!=None:
                l.append(c.left)
            if c.right!=None:
                l.append(c.right)
        return result

因?yàn)槲倚枰袛嗍裁磿r(shí)候給數(shù)組增加新行,所以我將標(biāo)志位放在了行前而不是行后磷支。這個(gè)并不影響解題的思路谒撼。

需要注意的是,標(biāo)志位會(huì)一直存在在隊(duì)列中雾狈,所以最終的遍歷終止條件是當(dāng)隊(duì)列中只有標(biāo)志位時(shí)廓潜。


Book中的思路

書中對于該題的處理也是在上一題的基礎(chǔ)上,增加了兩個(gè)變量解決的善榛,一個(gè)存儲(chǔ)著當(dāng)前行剩余的節(jié)點(diǎn)數(shù)辩蛋,另一個(gè)變量存儲(chǔ)著下一行的節(jié)點(diǎn)數(shù)。這樣便可以知道還需要輸出多少節(jié)點(diǎn)才能換行移盆,同時(shí)在換行時(shí)將開始下一行節(jié)點(diǎn)數(shù)的計(jì)數(shù)悼院。

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回二維列表[[1,2],[4,5]]
    def Print(self, pRoot):
        # write code here
        if pRoot == None:
            return []
        res=[[]]
        l=[pRoot]
        c_number=1
        n_number=0
        while len(l)!=0:
            n=l.pop(0)
            res[-1].append(n.val)
            c_number-=1
            if n.left!=None:
                l.append(n.left)
                n_number+=1
            if n.right!=None:
                l.append(n.right)
                n_number+=1
            if c_number==0 and n_number!=0:
                c_number=n_number
                n_number=0
                res.append([])
        return res

作者原創(chuàng),如需轉(zhuǎn)載及其他問題請郵箱聯(lián)系:lwqiang_chn@163.com咒循。
個(gè)人網(wǎng)站:https://www.myqiang.top据途。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叙甸,隨后出現(xiàn)的幾起案子颖医,更是在濱河造成了極大的恐慌,老刑警劉巖裆蒸,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熔萧,死亡現(xiàn)場離奇詭異,居然都是意外死亡僚祷,警方通過查閱死者的電腦和手機(jī)佛致,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辙谜,“玉大人俺榆,你說我怎么就攤上這事】晗遥” “怎么了肋演?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵抑诸,是天一觀的道長。 經(jīng)常有香客問我爹殊,道長蜕乡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任梗夸,我火速辦了婚禮层玲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘反症。我一直安慰自己辛块,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布铅碍。 她就那樣靜靜地躺著润绵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胞谈。 梳的紋絲不亂的頭發(fā)上尘盼,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機(jī)與錄音烦绳,去河邊找鬼卿捎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛径密,可吹牛的內(nèi)容都是我干的午阵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼享扔,長吁一口氣:“原來是場噩夢啊……” “哼底桂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伪很,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤戚啥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體览濒,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呆盖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年贷笛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了应又。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乏苦,死狀恐怖洞就,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旬蟋,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布冕碟,位于F島的核電站,受9級特大地震影響匆浙,放射性物質(zhì)發(fā)生泄漏安寺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一首尼、第九天 我趴在偏房一處隱蔽的房頂上張望我衬。 院中可真熱鬧,春花似錦饰恕、人聲如沸挠羔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽破加。三九已至,卻和暖如春雹嗦,著一層夾襖步出監(jiān)牢的瞬間范舀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工了罪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锭环,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓泊藕,卻偏偏與公主長得像辅辩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子娃圆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是二叉樹玫锋? 引用自百度百科:在計(jì)算機(jī)科學(xué)中,二叉樹是每個(gè)節(jié)點(diǎn)最多有兩個(gè)子樹的樹結(jié)構(gòu)讼呢。通常子樹被稱作“左子樹”(...
    AnICoo1閱讀 1,376評論 0 1
  • 樹的概述 樹是一種非常常用的數(shù)據(jù)結(jié)構(gòu)撩鹿,樹與前面介紹的線性表,棧悦屏,隊(duì)列等線性結(jié)構(gòu)不同节沦,樹是一種非線性結(jié)構(gòu) 1.樹的定...
    Jack921閱讀 4,455評論 1 31
  • 本文是我自己在秋招復(fù)習(xí)時(shí)的讀書筆記键思,整理的知識(shí)點(diǎn),也是為了防止忘記甫贯,尊重勞動(dòng)成果吼鳞,轉(zhuǎn)載注明出處哦!如果你也喜歡获搏,那...
    波波波先森閱讀 4,105評論 0 23
  • “你們之后赖条,難道就沒有再見過嗎?” “見是見過常熙,擦肩而過纬乍。”
    荒漠香果海閱讀 234評論 1 2
  • 女同學(xué)要去澳大利亞女兒那里裸卫,此去一別仿贬,無以贈(zèng)送,賦詩一首墓贿,寫入心中 送 別 七月流火 秋日漸歇 落霞點(diǎn)燃你了的思...
    王者飛鴻閱讀 349評論 0 6