输入描述:
二叉树的前序遍历列表和中序遍历列表
代码实现
class TreeNode: def __init__(self,x,left,right): self.val = x self.left = left self.right = right 重构二叉树 def constructTree(preorder,midorder): if len(preorder) == 0: return None root_data = preorder[0] i = midorder.index(root_data) left = constructTree(preorder[1:i+1],midorder[:i]) right = constructTree(preorder[i+1:],midorder[i+1:]) return TreeNode(root_data,left,right) 层序遍历 def levelorder(root): if root is None: return [] res = [] queue = [root] while queue: level = [] for _ in range(len(queue)): node = queue.pop(0) level.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) res.append(level) return res