既然中序和后序隊(duì)列構(gòu)成二叉樹寫了,就把前序和中序一做吧。
10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有昭平免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
原理其實(shí)也很簡(jiǎn)單,前序隊(duì)列第一個(gè)點(diǎn)就是根節(jié)點(diǎn),再中序隊(duì)列里面這個(gè)根節(jié)點(diǎn)可以分出左右兩個(gè)樹的兩個(gè)中序隊(duì)列,然后可以按照左右樹的節(jié)點(diǎn)數(shù)量,再前序節(jié)點(diǎn)里面分出對(duì)應(yīng)兩組前序隊(duì)列;然后反復(fù)遞歸即可。
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode: if inorder == []: return None else: if len(inorder) == 1: return TreeNode(inorder[0]) else: RootVal = preorder[0] currentNode = TreeNode(RootVal) inorderLeft = inorder[:inorder.index(RootVal)] inorderRight = inorder[inorder.index(RootVal)+1:] preorder.pop(0) preorderLeft = preorder[:len(inorderLeft)] preorderRight = preorder[-len(inorderRight):] currentNode.left = self.buildTree(preorderLeft,inorderLeft) currentNode.right = self.buildTree(preorderRight,inorderRight) return currentNode
網(wǎng)站欄目:刷題系列-給出前序和中序遍歷隊(duì)列,構(gòu)造對(duì)應(yīng)二叉樹
瀏覽路徑:http://muchs.cn/article0/gphooo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、軟件開發(fā)、商城網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)