摘要:題目描述以為中心進行分類題目分析根據中序和后序遍歷,構造二叉樹。根據動態規劃方法,找出循環的共性。構造子二叉樹,需要節點,和左右連接,從后序遍歷找出根節點,從對目標序列進行切分,如此往復。
題目描述:
Given inorder and postorder traversal of a tree, construct the binary tree.Note:
You may assume that duplicates do not exist in the tree.For example, given
inorder = [9,3,15,20,7]postorder = [9,15,7,20,3] Return the following binary tree: 3 / 9 20 / 15 7 inorder = [6,8,4,9,3,15,20,7] postorder = [6,4,8,9,15,7,20,3] 3 / 9 20 / / 8 15 7 / 6 4 ps: 以 postorder為中心進行分類
題目分析:根據中序和后序遍歷,構造二叉樹。 根據動態規劃方法,找出循環的共性。
構造子二叉樹,需要節點,和左右連接,從后序遍歷找出根節點,從inorder對目標序列進行切分,如此往復。
# 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, inorder, postorder): """ :type inorder: List[int] :type postorder: List[int] :rtype: TreeNode """ if not postorder: return None node_center_frompost=postorder.pop() index_center_inorder=inorder.index(node_center_frompost) node=TreeNode(node_center_frompost) node.left=self.buildTree(inorder[:index_center_inorder],postorder[:index_center_inorder]) node.right=self.buildTree(inorder[index_center_inorder+1:],postorder[index_center_inorder:]) return node
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41468.html
前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3y 一、二叉樹就是這么簡單 本文撇開一些非常苦澀、難以理解的概念來講講二叉樹,僅入門觀看(或復習).... 首先,我們來講講什么是樹: 樹是一種非線性的數據結構,相對于線性的數據結構(鏈表、數組)而言,樹的平均運行時間更短(往往與樹相關的排序時間復雜度都...
摘要:因此,根據題目給出的先序遍歷和中序遍歷,可以畫出二叉樹選參考數據結構與算法描述實現二叉樹算法淺談數據結構二叉樹慕課網實現二叉樹算法前端樹控件騰訊軟件開發面試題 內容銜接上一章 數據結構與算法:常見排序算法 內容提要 什么是樹 - 為什么使用樹 二叉樹 二叉查找樹 紅黑樹 B、B+樹 堆 伸展樹 樹 可以點擊鏈接感受下筆者用d3.js畫的tree https://codepen...
摘要:代碼實現構建二叉樹節點對應的值就是后序遍歷數組的最后一個元素在中序遍歷數組中的索引左子樹的節點個數遞歸構造左右子樹 把題目的要求細化,搞清楚根節點應該做什么,然...
閱讀 3616·2021-11-24 09:39
閱讀 2546·2021-11-15 11:37
閱讀 2211·2021-11-11 16:55
閱讀 5156·2021-10-14 09:43
閱讀 3703·2021-10-08 10:05
閱讀 3006·2021-09-13 10:26
閱讀 2327·2021-09-08 09:35
閱讀 3535·2019-08-30 15:55