二叉樹 中序遍歷 python_LeetCode 105 樹 從前序與中序遍歷序列構造二叉樹(Medium)

1a0e9b01909a7e104fdcc977c798c8c0.png

17(105) 從前序與中序遍歷序列構造二叉樹(Medium)

描述

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。

注意: 你可以假設樹中沒有重復的元素。

示例

例如,給出前序遍歷 preorder = [3,9,20,15,7]
中序遍歷 inorder = [9,3,15,20,7]返回如下的二叉樹:3/ 9  20/  15   7

Description

Given preorder and inorder traversal of a tree, construct the binary tree.

Note: You may assume that duplicates do not exist in the tree.

Example

For example, givenpreorder = [3,9,20,15,7]
inorder = [9,3,15,20,7]
Return the following binary tree:3/ 9  20/  15   7

BitDance Amazon Microsoft Adobe Apple Google Tencent Mi HuaWei VMware

解題

遞歸解法

class Solution {
public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {if(preorder.empty()) return NULL;TreeNode* root=new TreeNode(preorder[0]);vector<int> preorder_left, inorder_left, preorder_right, inorder_right;int i;for(i=0;i<inorder.size();++i){if(inorder[i]==root->val) break;inorder_left.push_back(inorder[i]);}//中序遍歷根結點的左子樹存入inorder_leftfor(++i;i<inorder.size();++i){inorder_right.push_back(inorder[i]);}//中序遍歷根結點的右子樹存入inorder_rightfor(int j=1;j<preorder.size();++j){//根據中序遍歷左子樹的長度來確定前序遍歷左子樹存入preorder_leftif(j<=inorder_left.size()) preorder_left.push_back(preorder[j]);//前序遍歷剩下的為右子樹 存入前序遍歷右子樹序列preorder_rightelse preorder_right.push_back(preorder[j]);}root->left=buildTree(preorder_left,inorder_left);root->right=buildTree(preorder_right,inorder_right);return root;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533785.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533785.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533785.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言刪除雙向鏈表重復元素,求一個雙向鏈表的建立,插入刪除的c語言程序完整版的,借鑒一下思想,再多說一下就是能運行的那種...

最佳答案//鏈表的操作編輯//線性表的雙向鏈表存儲結構typedef struct DuLNode{ElemType data;struct DuLNode *prior,*next;}DuLNode,*DuLinkList;////帶頭結點的雙向循環鏈表的基本操作void InitList(DuLinkList L){ /* 產生空的雙向循環鏈表L */L(DuLinkList)malloc(sizeof(D…

華為p10和p10plus區別_華為p10和p10plus哪個好 華為p10與p10plus區別對比【圖文】

華為p10與p10plus是華為在2017年的首發旗艦手機&#xff0c;作為顏值與配置都很亮眼的華為p10與p10plus自然成了大眾的焦點&#xff0c;當然也就避不可免的用來對比。究竟華為p10和p10plus哪個好?下面小編就來給大家講講華為p10與p10plus的區別對比。華為P10與P10 Plus區別對比…

python數學圓周率_Python編程超簡單方法算圓周率

我們都知道&#xff0c;圓周率是3.1415926也就是π&#xff0c;但你有沒有想過&#xff0c;圓周率是怎么算出來的呢&#xff1f; 這個是德國數學家萊布尼茲發明的算圓周率的方法&#xff0c;公式為&#xff1a;π4(1-1/31/51/71/9-1/11……)&#xff0c;其中&#xff0c;分母每…

計算payload長度c語言,C語言0長度數組(可變數組/柔性數組)詳解

1 零長度數組概念眾所周知, GNU/GCC 在標準的 C/C 基礎上做了有實用性的擴展, 零長度數組(Arrays of Length Zero) 就是其中一個知名的擴展.多數情況下, 其應用在變長數組中, 其定義如下struct Packet{ int state; int len; char cData[0]; //這里的0長結構體就為變長結構體提供…

iphone主屏幕動態壁紙_iPhone8怎么設置動態壁紙?iPhone8動態壁紙設置教程

iPhone8怎么設置動態壁紙?朋友們平時想把一些拍攝的動態圖片設置iPhone8壁紙&#xff0c;該怎么設置呢?估計有 不少朋友還不知道如何設置&#xff0c; 在這里我就來為大家介紹一下iPhone8設置動態壁紙的教程&#xff0c;一起來看一看吧!iPhone8動態壁紙設置教程首先打開iPhon…

python封裝介紹_談python3的封裝

這章給大家介紹&#xff0c;如何封裝一個簡單的python庫首先創建一個以下型式的文件結構rootFile/setup.pyexample_package/__init__.pyexample_module.pyexample_package2/__init__.pyexample_module.py其中的兩個__init__.py可以是一個空文件&#xff0c;但是它是導入package…

go語言調用c 的頭文件 so,golang 學習(10): 使用go語言調用c語言的so動態庫-Go語言中文社區...

一、前言最近在學習go&#xff0c;因為需要調用c語言打包成的so動態庫里面的方法&#xff0c;避免自己再去造輪子&#xff0c;所以想直接使用golang調用so&#xff0c;但是參考了其他博客大佬寫的&#xff0c;我每一步原封不動的寫下來&#xff0c;結果都是一堆錯誤&#xff0c…

log nginx 客戶端請求大小_Nginx日志分析和參數詳解

本文檔主要介紹Nginx設置日志參數的作用&#xff0c;以及Nginx日志常用分析命令基本大綱&#xff1a;1.Nginx日志記錄格式的介紹2.Nginx日志參數詳解3.Web服務流量名詞介紹4.Nginx日志常用分析命令示范一&#xff1a;Nginx日志記錄格式的介紹log_format用來設置日志的記錄格式&…

python函數的封裝調用_Python封裝一個函數來打印到變量

如果我有一個包含大量打印語句的函數&#xff1a; 即. def funA(): print "Hi" print "There" print "Friend" print "!" 我想做的是這樣的事情 def main(): ##funA() does not print to screen here a getPrint(funA()) ##where get…

android 開機動畫 漸變,[Parallax Animation]實現知乎 Android 客戶端啟動頁視差滾動效果...

前言Parallax Scrolling (視差滾動)&#xff0c;是一種常見的動畫效果。視差一詞來源于天文學&#xff0c;但在日常生活中也有它的身影。在疾馳的動車上看風景時&#xff0c;會發現越是離得近的&#xff0c;相對運動速度越快&#xff0c;而遠處的山川河流只是緩慢的移動著&…

js訪問對方手機文件夾_求JS大神幫我寫個利用JS來實現手機端和PC端訪問自動選擇樣式文件代碼...

展開全部現在比較流行的辦法是 一個網站2套代碼&#xff0c;一套是手機一套pc&#xff0c;在網站首頁開e68a84e8a2ad3231313335323631343130323136353331333363353735頭寫上一段識別各瀏覽器的判斷方法&#xff0c;根據結果引入不同的樣式詳細判斷如下&#xff1a;var browser{…

python可以做計量分析嗎_技術分享 - python數據分析(2)——數據特征分析(上)...

1 分布分析 分布分析能揭示數據的分布特征和分布類型。對于定量數據&#xff0c;欲了解其分布形式是對稱的還是非對稱的&#xff0c;發現某些特大或特小的可疑值&#xff0c;可通過繪制頻率分布表、繪制頻率分布直方圖、繪制莖葉圖進行直觀地分析&#xff1b;對于定性分類數據&…

android lrc 歌詞顯示,Android歌詞 AndroidLrc歌詞

[ti:Android][ar:川畑要][al:0][by:黃病病][00:00.00][00:01.69]Android[00:07.51]歌手&#xff1a;川畑要[00:10.96]作詞&#xff1a;Kaname Kawabata[00:12.64]作曲&#xff1a;UTAKaname Kawabata[00:14.06]BY:黃病病[00:15.80][00:15.66]一際目を引くまるでandroid[00:23.1…

web前端開發技術期末考試_Web前端開發技術期末試題1

絕密★啟用前Web前端開發技術期一、單項選擇題(本大題共25小題&#xff0c;每小題1分&#xff0c;共25分)1.網頁制作工具按照其工作方式可分為( )A.HTML語言和非HTML語言兩大類B.DHTML方式和JavaScript方式兩大類C.標注型網頁制作工具和所見即所得型網頁制作工具兩大類D.基于Wi…

matlab的7.3版本是什么_樂建工程寶V6.3版本升級說明公告

尊敬的樂建工程寶客戶&#xff1a;您好&#xff01;為了給客戶提供更加優質的產品和服務&#xff0c;我司已于2019年11月20日開始樂建工程寶V6.3版本升級服務。目前&#xff0c;Android系統各應用市場已基本審核完畢&#xff0c;iOS系統已上傳AppStore&#xff0c;目前蘋果官方…

魅族android 版本 6.0下載,flyme6.0內測版

由魅族開發的全新安卓系統flyme6.0系統固件已經到來&#xff0c;相對于Flyme 5系統有了眾多改變和提升&#xff0c;全新的智能服務系統&#xff0c;多達400于項全新功能&#xff0c;同時讓操作界面更加簡潔&#xff0c;易于操作&#xff0c;而系統運行速度也將有所提升&#xf…

origin設置不同區域的顏色_[測試狗]Origin入門教程(二十四):效率翻倍小技巧——修改默認字體...

在使用Origin的時候&#xff0c;對于每次繪圖都需要更改字體覺得很麻煩&#xff0c;因為Origin默認的字體為Arial&#xff0c;但是我們常用的字體一般為Times New Roman&#xff0c;在下拉框的很底部&#xff0c;每次更改都很浪費時間。那為什么不把他設置成默認字體呢&#xf…

cgi web 調用多次啟動_全面了解CGI、FastCGI、PHPFPM

一、拋個磚1、Web Server傳遞數據的方法正式說CGI之前&#xff0c;先來了解一下Web Server傳遞數據的另外一種方法&#xff1a;PHP Module加載方式。相信都會想起Apache吧&#xff0c;初學php時&#xff0c;在windows上安裝完php和Apache之后&#xff0c;為了讓Apache能夠解析p…

android群英傳神兵利器pdf,《Android群英傳:神兵利器》勘誤

1勘誤一晃&#xff0c;我的新書《Android群英傳:神兵利器》上市好多天了&#xff0c;有不少朋友已經拿到書了。本來以為&#xff0c;這次我看了不下十遍&#xff0c;再加上編輯們的校對&#xff0c;應該不會有很多勘誤了吧~ 可事實證明&#xff0c;我還是太年輕啊&#xff01;大…

datatype未定義是什么意思_TypeError:無法讀取未定義的屬性'then'

loginService.islogged()上面的函數返回一個像“失敗”的字符串 . 但是&#xff0c;當我嘗試運行然后對它運行時&#xff0c;它將返回錯誤TypeError: Cannot read property then of undefined并且光標在 connected 之后和 .then 之前指示 .以下是完整功能&#xff1a;var conne…