刷題系列 - 給出前序和後序遍歷佇列,構造對應二叉樹
既然中序和後序佇列構成二叉樹寫了,就把前序和中序一做吧。
原理其實也很簡單,前序佇列第一個點就是根節點,再中序佇列裡面這個根節點可以分出左右兩個樹的兩個中序佇列,然後可以按照左右樹的節點數量,再前序節點裡面分出對應兩組前序佇列;然後反覆遞迴即可。
# 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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2674511/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- 889. 根據前序和後序遍歷構造二叉樹二叉樹
- Leetcode 889. 根據前序和後序遍歷構造二叉樹LeetCode二叉樹
- 刷題筆記:樹的前序、中序、後序遍歷筆記
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 【根據前序和中序遍歷構造二叉樹】棧+迭代 || 遞迴二叉樹遞迴
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- LeetCode 105. 從前序與中序遍歷序列構造二叉樹LeetCode二叉樹
- LeetCode-105-從前序與中序遍歷序列構造二叉樹LeetCode二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 從中序與後序遍歷序列構造二叉樹二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹前序遍歷Python遞迴二叉樹
- LeetCode 105. 從前序與中序遍歷序列構造二叉樹 | PytLeetCode二叉樹
- 388,先序遍歷構造二叉樹二叉樹
- 二叉樹迭代器(中序遞迴、前序和後序遍歷)演算法二叉樹遞迴演算法
- 【樹01】對二叉樹前序/中序/後序遍歷演算法的一些思考二叉樹演算法
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- 中序線索二叉樹的構造和遍歷二叉樹
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 【資料結構與演算法】二叉樹的 Morris 遍歷(前序、中序、後序)資料結構演算法二叉樹
- 二叉樹--後序遍歷二叉樹
- LeetCode-106-從中序與後序遍歷序列構造二叉樹LeetCode二叉樹
- 從前序與中序構造二叉樹二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹中序遍歷Python遞迴二叉樹
- L2_006樹的遍歷(後序+中序->前序/層序)
- LeetCode題144. 二叉樹的前序遍歷LeetCode二叉樹
- 【模板題】- 144. 二叉樹的前序遍歷二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- 106. 從中序與後序遍歷序列構造二叉樹——Java實現二叉樹Java
- PAT 1043 Is It a Binary Search Tree (25分) 由前序遍歷得到二叉搜尋樹的後序遍歷
- 線索二叉樹的構造和遍歷二叉樹
- 【模板題】- 145. 二叉樹的後序遍歷二叉樹
- 144. 二叉樹的前序遍歷二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹後續遍歷Python遞迴二叉樹
- 劍指offer:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。二叉樹