大家好,我是吳師兄,直接開始今天的算法學(xué)習(xí),沖沖沖。
一、題目描述
從上到下打印出二叉樹的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。
例如: 給定二叉樹:[3,9,20,null,null,15,7]
,
3
/
920
/
157
返回:
[3,9,20,15,7]
二、保姆級(jí)參考代碼
//登錄AlgoMooc官網(wǎng)獲取更多算法圖解
//https://www.algomooc.com
//作者:程序員吳師兄
classSolution{
publicint[]levelOrder(TreeNoderoot){
//根節(jié)點(diǎn)為空的情況返回空數(shù)組
if(root==null)returnnewint[0];
//生成一個(gè)隊(duì)列,用來保存節(jié)點(diǎn)
Queuequeue=newLinkedList<>();
//生成一個(gè)list,用來保存輸出的節(jié)點(diǎn)
Listlist=newArrayList<>();
//首先讓根節(jié)點(diǎn)入隊(duì)
queue.add(root);
//遍歷隊(duì)列,直到隊(duì)列為空
while(!queue.isEmpty()){
//獲取隊(duì)列的頭部元素
TreeNodenode=queue.poll();
//把結(jié)點(diǎn)值存放到list中
list.add(node.val);
//判斷該節(jié)點(diǎn)是否有左右子節(jié)點(diǎn)
//如果左子節(jié)點(diǎn)有值,則把左子節(jié)點(diǎn)加入到隊(duì)列中
if(node.left!=null){
queue.add(node.left);
}
//如果右子節(jié)點(diǎn)有值,則把右子節(jié)點(diǎn)加入到隊(duì)列中
if(node.right!=null){
queue.add(node.right);
}
}
//根據(jù)題目要求,把list轉(zhuǎn)化為數(shù)組
int[]res=newint[list.size()];
for(inti=0;i//返回res
returnres;
}
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
算法
+關(guān)注
關(guān)注
23文章
4576瀏覽量
92341 -
二叉樹
+關(guān)注
關(guān)注
0文章
74瀏覽量
12296
原文標(biāo)題:面試官:讓你打印一下二叉樹,有必要這么麻煩嗎?
文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
邏輯組件中的流程塊節(jié)點(diǎn)通常出于什么用途
邏輯組件中的流程塊節(jié)點(diǎn)是流程圖、狀態(tài)圖、序列圖等圖表中的基本元素,它們用于表示業(yè)務(wù)流程、工作流程、算法步驟、系統(tǒng)狀態(tài)等。這些節(jié)點(diǎn)在軟件開發(fā)、
什么是默克爾樹(Merkle Tree)?如何計(jì)算默克爾根?
01 默克爾樹的概念 默克爾樹(Merkle Tree)是一種特殊的二叉樹,它的每個(gè)節(jié)點(diǎn)都存儲(chǔ)了一個(gè)數(shù)據(jù)塊的哈希值。哈希值是一種可以將任意長度的數(shù)據(jù)轉(zhuǎn)換為固定長度的字符串的算法,它具有唯一性和不可
深度學(xué)習(xí)算法在嵌入式平臺(tái)上的部署
隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)算法在各個(gè)領(lǐng)域的應(yīng)用日益廣泛。然而,將深度學(xué)習(xí)算法部署到資源受限的嵌入式平臺(tái)上,仍然是一個(gè)具有挑戰(zhàn)性的任務(wù)。本文將從嵌入式平臺(tái)的特點(diǎn)、深度
深度學(xué)習(xí)算法在集成電路測試中的應(yīng)用
隨著半導(dǎo)體技術(shù)的快速發(fā)展,集成電路(IC)的復(fù)雜性和集成度不斷提高,對測試技術(shù)的要求也日益增加。深度學(xué)習(xí)算法作為一種強(qiáng)大的數(shù)據(jù)處理和模式識(shí)別工具,在集成電路測試領(lǐng)域展現(xiàn)出了巨大的應(yīng)用潛力。本文將從深度學(xué)習(xí)
節(jié)點(diǎn)電壓法中電壓源怎么處理
節(jié)點(diǎn)電壓法(Node Voltage Method,簡稱NVM)是電路分析中的一種基本方法,主要應(yīng)用于求解線性電路中的節(jié)點(diǎn)電壓。在節(jié)點(diǎn)電壓法
叉指電極上覆蓋敏感材料的阻值計(jì)算
覆蓋的敏感材料厚度超出叉指厚度時(shí)計(jì)算電阻,是否可以視作叉指電極指間電阻多個(gè)周期串聯(lián)后與超出叉指厚度部分敏感材料電阻并聯(lián)
發(fā)表于 07-05 14:48
機(jī)器學(xué)習(xí)算法原理詳解
機(jī)器學(xué)習(xí)作為人工智能的一個(gè)重要分支,其目標(biāo)是通過讓計(jì)算機(jī)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無需進(jìn)行明確的編程。本文將深入解讀幾種常見的機(jī)器學(xué)習(xí)算法原理,包括線性回歸、邏輯回歸、支持向量機(jī)
機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用
關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)和機(jī)器
哈夫曼編碼怎么算 哈夫曼編碼左邊是0還是1
二叉樹,將出現(xiàn)頻率高的字符用較短的編碼表示,而出現(xiàn)頻率低的字符則用較長的編碼表示。通過這種方式,可以實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行高效的編碼和解碼。 下面我們將詳細(xì)介紹哈夫曼編碼的算法過程。 統(tǒng)計(jì)字符頻率 在進(jìn)行哈夫曼編碼前,首先需
目前主流的深度學(xué)習(xí)算法模型和應(yīng)用案例
深度學(xué)習(xí)在科學(xué)計(jì)算中獲得了廣泛的普及,其算法被廣泛用于解決復(fù)雜問題的行業(yè)。所有深度學(xué)習(xí)算法都使用不同類型的神經(jīng)網(wǎng)絡(luò)來執(zhí)行特定任務(wù)。
堆的實(shí)現(xiàn)思路
什么是堆? 堆是一種 基于樹結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),它是一棵二叉樹 ,具有以下兩個(gè)特點(diǎn): 堆是一個(gè)完全二叉樹,即除了最后一層,其他層都是滿的,最后一層從左到右填滿。 堆中每個(gè)節(jié)點(diǎn)都滿足堆的特性
樹與二叉樹的定義
樹型結(jié)構(gòu) 是一類重要的 非線性數(shù)據(jù)結(jié)構(gòu) ,其中以樹和二叉樹最為常用,直觀來看,樹是以分支關(guān)系定義的層次結(jié)構(gòu)。樹型結(jié)構(gòu)在客觀世界中廣泛存在,比如人類社會(huì)中的祖輩關(guān)系,社會(huì)機(jī)構(gòu)組織等等都可以用樹來形象
全面總結(jié)機(jī)器學(xué)習(xí)中的優(yōu)化算法
幾乎所有的機(jī)器學(xué)習(xí)算法最后都?xì)w結(jié)為求一個(gè)目標(biāo)函數(shù)的極值,即最優(yōu)化問題,例如對于有監(jiān)督學(xué)習(xí),我們要找到一個(gè)最佳的映射函數(shù)f (x),使得對訓(xùn)練樣本的損失函數(shù)最小化(最小化經(jīng)驗(yàn)風(fēng)險(xiǎn)或結(jié)構(gòu)風(fēng)險(xiǎn))。
發(fā)表于 11-02 10:18
?380次閱讀
機(jī)器學(xué)習(xí)的基本流程和十大算法
為了進(jìn)行機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘任務(wù),數(shù)據(jù)科學(xué)家們提出了各種模型,在眾多的數(shù)據(jù)挖掘模型中,國際權(quán)威的學(xué)術(shù)組織 ICDM(the IEEE International Conference on Data Mining)評選出了十大經(jīng)典的算法
發(fā)表于 10-31 11:30
?924次閱讀
為什么MySQL索引要用B+tree?
紅黑樹是一種特化的 AVL樹(平衡二叉樹),都是在進(jìn)行插入和刪除操作時(shí)通過特定操作保持二叉查找樹的平衡;
若一棵二叉查找樹是紅黑樹,則它的任一子樹必為紅黑樹。
發(fā)表于 10-30 14:41
?191次閱讀
評論