笔试算法---二叉树重建
2018-03-04 19:36
253 查看
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回构造的TreeNode根节点 def reConstructBinaryTree(self, pre, tin): # write code here if len(pre) == 0: return None if len(pre) == 1: return TreeNode(pre[0]) else: flag = TreeNode(pre[0]) flag.left = self.reConstructBinaryTree(pre[1:tin.index(pre[0])+1],tin[:tin.index(pre[0])]) flag.right = self.reConstructBinaryTree(pre[tin.index(pre[0])+1:],tin[tin.index(pre[0])+1:] ) return flag分情况考虑,无节点,单节点除外,剩下的,按照前序遍历和中序遍历的特点加进去。
相关文章推荐
- 笔试算法题(36):寻找一棵二叉树中最远节点的距离 & 根据二叉树的前序和后序遍历重建二叉树
- 重建二叉树 -- 漫漫算法路 刷题篇
- 算法-重建二叉树
- 前端常见算法面试题之 - 重建二叉树[JavaScript解法]
- 算法(二叉树)--- 根据先序、中序遍历重建二叉树
- [剑指offer]算法4 重建二叉树
- 算法题17 重建二叉树
- 【算法题】重建二叉树
- 笔试面试算法经典--二叉树的镜像-递归与非递归实现(Java)
- 笔试算法题(06):最大连续子数组和 & 二叉树路径和值
- [算法学习]输入遍历重建二叉树
- 笔试算法题(16):二叉树深度计算 & 字符串全排列
- 每天一道算法题——重建二叉树
- 笔试面试算法经典--判断二叉树是否是平衡二叉树(Java)
- 重拾算法之剑指Offier——重建二叉树
- 【数据结构与算法】重建二叉树
- 剑指offer-算法题练习:part4 重建二叉树
- 笔试面试算法经典--二叉树层次打印
- 算法题目-二叉树的重建
- 【算法入门经典】6.3.3 二叉树重建【双十一大礼包】