0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

算法學(xué)習(xí)中如何打印二叉樹節(jié)點(diǎn)

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:五分鐘學(xué)算法 ? 作者:程序員吳師兄 ? 2021-10-22 09:37 ? 次閱讀
大家好,我是吳師兄,直接開始今天的算法學(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;
}
}
責(zé)任編輯:haq
聲明:本文內(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    邏輯組件的流程塊節(jié)點(diǎn)通常出于什么用途

    邏輯組件的流程塊節(jié)點(diǎn)是流程圖、狀態(tài)圖、序列圖等圖表的基本元素,它們用于表示業(yè)務(wù)流程、工作流程、算法步驟、系統(tǒng)狀態(tài)等。這些節(jié)點(diǎn)在軟件開發(fā)、
    的頭像 發(fā)表于 10-15 14:38 ?66次閱讀

    什么是默克爾樹(Merkle Tree)?如何計(jì)算默克爾根?

    01 默克爾樹的概念 默克爾樹(Merkle Tree)是一種特殊的二叉樹,它的每個(gè)節(jié)點(diǎn)都存儲(chǔ)了一個(gè)數(shù)據(jù)塊的哈希值。哈希值是一種可以將任意長度的數(shù)據(jù)轉(zhuǎn)換為固定長度的字符串的算法,它具有唯一性和不可
    的頭像 發(fā)表于 09-30 18:22 ?253次閱讀
    什么是默克爾樹(Merkle Tree)?如何計(jì)算默克爾根?

    深度學(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)、深度
    的頭像 發(fā)表于 07-15 10:03 ?953次閱讀

    深度學(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í)
    的頭像 發(fā)表于 07-15 09:48 ?584次閱讀

    節(jié)點(diǎn)電壓法電壓源怎么處理

    節(jié)點(diǎn)電壓法(Node Voltage Method,簡稱NVM)是電路分析的一種基本方法,主要應(yīng)用于求解線性電路節(jié)點(diǎn)電壓。在節(jié)點(diǎn)電壓法
    的頭像 發(fā)表于 07-12 09:20 ?1548次閱讀

    指電極上覆蓋敏感材料的阻值計(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ī)
    的頭像 發(fā)表于 07-02 11:25 ?541次閱讀

    機(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ī)器
    的頭像 發(fā)表于 06-27 08:27 ?1496次閱讀
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典<b class='flag-5'>算法</b>與應(yīng)用

    哈夫曼編碼怎么算 哈夫曼編碼左邊是0還是1

    二叉樹,將出現(xiàn)頻率高的字符用較短的編碼表示,而出現(xiàn)頻率低的字符則用較長的編碼表示。通過這種方式,可以實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行高效的編碼和解碼。 下面我們將詳細(xì)介紹哈夫曼編碼的算法過程。 統(tǒng)計(jì)字符頻率 在進(jìn)行哈夫曼編碼前,首先需
    的頭像 發(fā)表于 01-30 11:27 ?2241次閱讀

    目前主流的深度學(xué)習(xí)算法模型和應(yīng)用案例

    深度學(xué)習(xí)在科學(xué)計(jì)算獲得了廣泛的普及,其算法被廣泛用于解決復(fù)雜問題的行業(yè)。所有深度學(xué)習(xí)算法都使用不同類型的神經(jīng)網(wǎng)絡(luò)來執(zhí)行特定任務(wù)。
    的頭像 發(fā)表于 01-03 10:28 ?1470次閱讀
    目前主流的深度<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法</b>模型和應(yīng)用案例

    堆的實(shí)現(xiàn)思路

    什么是堆? 堆是一種 基于樹結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),它是一棵二叉樹 ,具有以下兩個(gè)特點(diǎn): 堆是一個(gè)完全二叉樹,即除了最后一層,其他層都是滿的,最后一層從左到右填滿。 堆每個(gè)節(jié)點(diǎn)都滿足堆的特性
    的頭像 發(fā)表于 11-24 16:02 ?365次閱讀
    堆的實(shí)現(xiàn)思路

    樹與二叉樹的定義

    樹型結(jié)構(gòu) 是一類重要的 非線性數(shù)據(jù)結(jié)構(gòu) ,其中以樹和二叉樹最為常用,直觀來看,樹是以分支關(guān)系定義的層次結(jié)構(gòu)。樹型結(jié)構(gòu)在客觀世界中廣泛存在,比如人類社會(huì)中的祖輩關(guān)系,社會(huì)機(jī)構(gòu)組織等等都可以用樹來形象
    的頭像 發(fā)表于 11-24 15:57 ?1156次閱讀
    樹與<b class='flag-5'>二叉樹</b>的定義

    全面總結(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次閱讀
    全面總結(jié)機(jī)器<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>中</b>的優(yōu)化<b class='flag-5'>算法</b>

    機(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次閱讀
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>的基本流程和十大<b class='flag-5'>算法</b>

    為什么MySQL索引要用B+tree?

    紅黑樹是一種特化的 AVL樹(平衡二叉樹),都是在進(jìn)行插入和刪除操作時(shí)通過特定操作保持二叉查找樹的平衡; 若一棵二叉查找樹是紅黑樹,則它的任一子樹必為紅黑樹。
    發(fā)表于 10-30 14:41 ?191次閱讀