日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

面試算法之重建二叉樹

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:算法與數(shù)據(jù)結(jié)構(gòu) ? 2019-11-27 15:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從今天開始,公眾號陸陸續(xù)續(xù)開始插寫用動畫形式展現(xiàn)算法題,如劍指offer、Leedcode里經(jīng)典面試題型,同時也會更新數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)、網(wǎng)絡原理等知識。

以為無論是面試還是實際項目,對算法的要求也非常的嚴格,所以小鹿盡最大努力把算法還原成動畫形式來講解,爭取讓每個人都能看懂算法、學會算法。

1

題目

已知前序遍歷為{1,2,4,7,3,5,6,8},中序遍歷為{4,7,2,1,5,3,8,6},它的二叉樹是怎么樣的?

2

基礎(chǔ)鞏固

根據(jù)上述題目所述,我們已知前序遍歷和中序遍歷,回顧一下,什么是前序遍歷?什么是中序遍歷?

2.1 前序遍歷

前序遍歷一顆二叉樹,首先輸出根節(jié)點,然后輸出左子節(jié)點,最后輸出右子節(jié)點。

比如,遍歷一下二叉樹:

顏色變深表示遍歷,突出表示輸出

2.2 中序遍歷

中序遍歷一棵二叉樹,首先輸出左子節(jié)點,然后輸出輸出根節(jié)點,最后右子節(jié)點。

以上邊二叉樹為例,通過中序遍歷輸出。

3

解題思路

既然我們知道了二叉樹如何進行前序遍歷和中序遍歷了,那么已知前序遍歷和中序遍歷如何反推二叉樹呢?

那么問題來了,只知道前序遍歷能不能反推二叉樹呢?我們就試一下,比如題目中所述,{1,2,4,7,3,5,6,8},根據(jù)前序遍歷,根、左、右,1 肯定是 根節(jié)點,那么一下2,4,7.....哪些是左子節(jié)點呢?左子節(jié)點有幾個呢?很顯然我們是不知道的,由此可以得出,只知道前序遍歷是不可能反推出二叉樹的,中序遍歷也是如此,自己可以嘗試一下。

那么前序遍歷和中序遍歷可不可以?那我們要試一下,我們上邊通過前序遍歷找到第一個根節(jié)點就是 1,如圖

中序遍歷{4,7,2,1,5,3,8,6}的規(guī)律又是左、根、右,所以 1 結(jié)點在中序遍歷中為根,它的左邊就是所有左子節(jié)點4,7,2,右邊為所有的右子節(jié)點5,3,8,6。

此時我們已經(jīng)劃分左右子節(jié)點了,但是左邊的子節(jié)點中哪些又是根節(jié)點呢?我們再回到前序遍歷中,根據(jù)前序遍歷的特點,根、左、右,在從子節(jié)點進行劃分,那么 1 結(jié)點中的子節(jié)點誰為根節(jié)點呢?

我們一眼就能看出來,就是 2 結(jié)點,那么剩余的 4,7 左右結(jié)點怎么分呢?我們根據(jù)上述再回到中序遍歷,找到 2 根節(jié)點,根據(jù)中序遍歷左、根、右的特點,找到 2 結(jié)點,那左邊的就是左子節(jié)點,右邊的就是右子節(jié)點,我們可以看到,左邊有兩個數(shù),正是 4 和 7 結(jié)點。

右邊只有 1 結(jié)點,1 結(jié)點我們剛剛說了,是根節(jié)點,所以以 2 為根節(jié)點是沒有右子節(jié)點的,剩下的數(shù)字也是同樣的方式區(qū)分,自己可以試一下,動手畫一畫。

我們仔細發(fā)現(xiàn),其實整個層層往下,以及左右,都是相同的解決方式,而且大問題可以分解為小問題,我們下意識就應該想起小鹿之前分享過的知識,那就是遞歸,既然是遞歸,就應該有終止條件,終止條件就是當子節(jié)點為空時,此時遞歸結(jié)束。

4

測試用例

我們之前的文章強調(diào)過,手寫代碼之前,一定先把測試用例想好,為了能夠在手寫代碼的時候考慮到邊界情況,還為了防止你到時候面試涂涂改改。

4.1 普通測試

完全二叉樹、非完全二叉樹。

4.2 特殊測試

只有左子節(jié)點二叉樹,只有右子節(jié)點、只有一個結(jié)點的二叉樹 —— 特殊二叉樹測試。

4.3 輸入測試

空樹、空指針null、前序和中序不匹配。

5

代碼實現(xiàn)

JavaScript 版本

Java 版本

C 語言版本

Python 版本

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4810

    瀏覽量

    98610
  • 二叉樹
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    13008

原文標題:動畫:面試算法之重建二叉樹

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    3DGS技術(shù)詳解():視覺重建到物理仿真,3DGS如何走向工程應用?

    )如何突破靜態(tài)重建的局限,實現(xiàn)對動態(tài)天氣、移動光源等復雜環(huán)境因素的建模與仿真。這標志著3DGS已不再僅僅是“高保真場景重建工具
    的頭像 發(fā)表于 03-20 17:37 ?961次閱讀
    3DGS技術(shù)詳解(<b class='flag-5'>二</b>):視覺<b class='flag-5'>重建</b>到物理仿真,3DGS如何走向工程應用?

    AI面試的真與假,不在報告是否漂亮,而在評分是否可追溯

    在招聘場景中,AI面試真正需要回答的,并不是“能不能生成一份看起來足夠智能的報告”,而是兩個更基礎(chǔ)、也更嚴肅的問題: 第一,評分究竟是否真正由算法獨立完成; 第,這一評分是否具備足夠的信度與效度
    的頭像 發(fā)表于 03-16 16:28 ?162次閱讀
    AI<b class='flag-5'>面試</b>的真與假,不在報告是否漂亮,而在評分是否可追溯

    面試必看!排隊自旋鎖32位變量的域劃分與核心作用

    在操作系統(tǒng)面試中,并發(fā)同步機制一直是高頻考點,而排隊自旋鎖作為解決傳統(tǒng)自旋鎖“饑餓” 問題的關(guān)鍵技術(shù),其 32 位變量的域劃分更是面試官青睞的 “細節(jié)題”。不少同學能說出排隊自旋鎖的基本概念,卻對其
    的頭像 發(fā)表于 02-09 16:54 ?936次閱讀
    <b class='flag-5'>面試</b>必看!排隊自旋鎖32位變量的域劃分與核心作用

    面試必看:排隊自旋鎖MCS鎖的實現(xiàn)原理與關(guān)鍵考點

    在并發(fā)編程面試中,“鎖” 是繞不開的核心話題,而自旋鎖作為輕量級鎖的代表,其優(yōu)化方案更是高頻考點。
    的頭像 發(fā)表于 02-09 16:51 ?867次閱讀
    <b class='flag-5'>面試</b>必看:排隊自旋鎖<b class='flag-5'>之</b>MCS鎖的實現(xiàn)原理與關(guān)鍵考點

    探索LMH2191:52 MHz時鐘驅(qū)動的卓越

    探索LMH2191:52 MHz時鐘驅(qū)動的卓越選 在電子設(shè)計領(lǐng)域,時鐘信號的穩(wěn)定與精確對于設(shè)備的性能至關(guān)重要。今天,我們就來深入了解一款出色的時鐘驅(qū)動芯片——Texas Instruments
    的頭像 發(fā)表于 02-09 11:40 ?370次閱讀

    TüV萊茵與杭集團達成戰(zhàn)略合作并頒發(fā)歐盟CE-MD符合性證書

    日前,國際獨立第三方檢測、檢驗和認證機構(gòu)德國萊茵TüV大中華區(qū)(簡稱"TüV萊茵")與杭集團股份有限公司(簡稱"杭集團")簽署了戰(zhàn)略合作協(xié)議,標志著雙方
    的頭像 發(fā)表于 01-15 12:18 ?472次閱讀

    億緯鋰能與杭集團達成戰(zhàn)略合作

    近日,億緯鋰能與杭集團2025年戰(zhàn)略研討會暨戰(zhàn)略合作協(xié)議簽約儀式在杭州舉行。億緯鋰能副總裁、商用車電池產(chǎn)品線總裁江吉兵博士,億緯鋰能商用車電池產(chǎn)品線國內(nèi)銷售部總經(jīng)理井振江,杭集團董事、副總經(jīng)理兼
    的頭像 發(fā)表于 01-04 18:18 ?1195次閱讀

    C語言的常見算法

    = next; } return prev; } ``` ### 二叉樹遍歷 (前序) ```c struct TreeNode { int val; struct TreeNode
    發(fā)表于 11-24 08:29

    通過優(yōu)化代碼來提高MCU運行效率

    選擇時間復雜度低的算法。 根據(jù)訪問模式選擇數(shù)據(jù)結(jié)構(gòu)。頻繁查找用哈希表,有序數(shù)據(jù)用二叉樹等。 查表法:對于復雜的數(shù)學計算(如sin, log),或者協(xié)議解析,預先計算好結(jié)果存于數(shù)組中,用空間換時間
    發(fā)表于 11-12 08:21

    Verilog實現(xiàn)使用Booth編碼和Wallace的定點補碼乘法器原理

    結(jié)果只需要一個周期,大大提升了乘法器性能。 1.Booth編碼 將乘數(shù)看作從最低位開始的一串進制數(shù)字。Booth算法的基本思路是:對于具有連續(xù)0和1的組,需要產(chǎn)生的部分積較少。對于乘數(shù)中每個0
    發(fā)表于 10-23 08:01

    人工智能工程師高頻面試題匯總:循環(huán)神經(jīng)網(wǎng)絡篇(題目+答案)

    ,提前準備一些面試常問的問題,比如概率論與統(tǒng)計知識、機器學習的那些算法,或者深度學習的框架,還有怎么優(yōu)化模型,循環(huán)神經(jīng)網(wǎng)絡等,這些都是加分項,能有效提高面試通過率
    的頭像 發(fā)表于 10-17 16:36 ?891次閱讀
    人工智能工程師高頻<b class='flag-5'>面試</b>題匯總:循環(huán)神經(jīng)網(wǎng)絡篇(題目+答案)

    請問rtt studio 的文件夾打紅什么意思?

    rtt studio 的文件夾打紅什么意思?而且文件夾里面實際是有文件的,但是瀏覽不出來。
    發(fā)表于 09-18 06:34

    信號發(fā)生器如何與波束賦形算法配合優(yōu)化?

    -120dBm,測試算法在低SNR下的初始波束捕獲能力。 毫米波通信:生成28GHz或39GHz的參考信號,帶寬400MHz,驗證算法在高頻段的大規(guī)模MIMO波束訓練性能。 、信號發(fā)生器與波束賦形
    發(fā)表于 08-08 14:41

    億緯鋰能榮獲杭集團2022-2024年度優(yōu)秀供應商獎

    近日,億緯鋰能憑借卓越產(chǎn)品、可靠交付與優(yōu)質(zhì)服務榮獲杭集團頒發(fā)的“2022-2024年度優(yōu)秀供應商”獎。杭集團副總經(jīng)理兼杭電器董事長金華曙、杭電器總經(jīng)理兼杭博電機總經(jīng)理李明輝出席
    的頭像 發(fā)表于 07-15 09:00 ?1132次閱讀

    航天宏圖全棧式3DGS實景三維重建系統(tǒng)解決方案

    表達的核心技術(shù),通過相機、傳感器等設(shè)備獲取物理空間數(shù)據(jù),并結(jié)合計算機視覺與圖形學算法,將維圖像轉(zhuǎn)換為三維模型。目前,主流的三維重建方法包括傾斜攝影(多視角立體重建)、激光掃描和神經(jīng)輻
    的頭像 發(fā)表于 06-27 09:28 ?2002次閱讀
    航天宏圖全棧式3DGS實景三維<b class='flag-5'>重建</b>系統(tǒng)解決方案
    宁津县| 大洼县| 米泉市| 晋州市| 西城区| 陕西省| 沁阳市| 专栏| 金山区| 凌源市| 紫云| 凌云县| 彰化市| 齐齐哈尔市| 铜山县| 新宁县| 酒泉市| 建水县| 云南省| 乌苏市| 临沂市| 囊谦县| 醴陵市| 突泉县| 集安市| 运城市| 吉水县| 普格县| 侯马市| 美姑县| 吉林省| 林周县| 潢川县| 太湖县| 如东县| 元朗区| 凤冈县| 万安县| 文安县| 简阳市| 桑日县|