剑指offer 06 重建二叉树
来源:互联网 发布:网络教育心理学专业 编辑:程序博客网 时间:2024/05/18 02:10
题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
思路:
根据前序第一个数,找到在中序的下标。下标左边是左子树,右边是右子树。递归遍历。
# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回构造的TreeNode根节点 def reConstructBinaryTree(self, pre, tin): # write code here if len(pre) == 0 or len(tin) == 0: return None tree = TreeNode(pre[0]) #寻找数字在中序中的位置 index = 0 for i in tin: if i == pre[0]: break index += 1 if len(tin[:index]) == 0: tree.left = None else: tree.left = self.reConstructBinaryTree(pre[1:1 + index], tin[:index]) if len(tin[index + 1:]) == 0: tree.right = None else: tree.right = self.reConstructBinaryTree(pre[1 + index:], tin[index + 1:]) return tree
阅读全文
0 0
- 剑指offer 06:重建二叉树
- 剑指offer 06 重建二叉树
- [剑指offer]重建二叉树
- 【剑指offer】重建二叉树
- 剑指offer--重建二叉树
- 剑指offer---重建二叉树
- 剑指Offer-重建二叉树
- 剑指offer:重建二叉树
- 剑指offer-重建二叉树
- 《剑指offer》重建二叉树
- 【剑指Offer】重建二叉树
- 剑指offer-重建二叉树
- 《剑指offer》-重建二叉树
- 剑指offer 重建二叉树
- 剑指offer:重建二叉树
- 【剑指offer】重建二叉树
- 剑指offer 重建二叉树
- [剑指offer]重建二叉树
- 自己立的flag,倒了也要扶起来
- Ubuntu菜单栏和任务栏不见了 解决方案
- git常用命令总结
- 物联网云平台将成为产业生态的核心
- Java大数据人才应用领域广,就业薪酬高
- 剑指offer 06 重建二叉树
- Okhttp3菜鸟必入
- plsql 中文乱码问题
- CSS Sprites的原理(图片整合技术)(CSS精灵)/雪碧图
- 第3章 GPU Pipeline Overview
- linux 一些基础操作备忘
- Androidstudio Intent无缘无故跳转白屏
- Python2.7.x安装requests模块
- Networking||POJ1287