已知中序、後序構造二叉樹(關鍵詞:二叉樹/前序/先序/中序/後序/先根/中根/後根/遍歷/搜尋/查詢)
阿新 • • 發佈:2018-12-11
已知中序、後序構造二叉樹
遞迴演算法
def buildTree(inorder, postorder): if inorder and postorder: postRootVal = postorder.pop() inRootIdx = inorder.index(postRootVal) root = TreeNode(postRootVal) """ 解釋: 當從 postorder 中 pop 時,首先會命中 right child , 所以,在構造樹時,需要先設定 right ,再設定 left 。 """ root.right = self.buildTree(inorder[inRootIdx+1:], postorder) root.left = self.buildTree(inorder[:inRootIdx], postorder) return root
參考文獻
- 106. Construct Binary Tree from Inorder and Postorder - LeetCode;
- 這是印象筆記中的筆記,如果是在CSDN手機APP上檢視此部落格,請在印象筆記手機APP中搜索該參考文獻:https://app.yinxiang.com/shard/s44/nl/9329661/e2a2758d-7c33-4fbd-99e0-74ff56457b82。