Leetcode: Construct Binary Tree from Preorder and Inorder Traversal
2015-08-24 10:42
429 查看
Get idea from Code Ganker.
Note:
You may assume that duplicates do not exist in the tree.
Show Tags
Show Similar Problems
Question
Given preorder and inorder traversal of a tree, construct the binary tree.Note:
You may assume that duplicates do not exist in the tree.
Show Tags
Show Similar Problems
Analysis
refer to Code Ganker CSDN.fSolution
[code]# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def buildTree(self, preorder, inorder): """ :type preorder: List[int] :type inorder: List[int] :rtype: TreeNode """ if preorder==None or inorder==None: return None self.dictin = {} for ind,temp in enumerate(inorder): self.dictin[temp] = ind return self.helper(0, len(preorder)-1, preorder, 0, len(inorder)-1, inorder) def helper(self, preS, preE, preorder, inS, inE, inorder): if preS>preE or inS>inE: return None root = TreeNode(preorder[preS]) index = self.dictin[root.val] root.left = self.helper( preS+1, preS+(index-inS) , preorder, inS, index-1, inorder) root.right = self.helper( preS+(index-inS)+1, preE, preorder, index+1, inE, inorder) return root
相关文章推荐
- SDUTOJ 1381 小P寻宝记——粗心的基友 (01背包)
- 深度解析 ES6 第二篇
- ubuntu建立和删除用户
- 面试题7
- 指针变量的运算
- PAT 1022. Digital Library (30)
- Harry Potter and the Half-Blood Prince
- hbase协处理器--创建endpoint协处理器
- 理解RESTful架构
- checkstyle配置文件说明
- 字符串匹配之boyer-Moore算法
- IO-02 整数四则运算
- openstack cinder+drbd+nfs实现高可用存储【kilo版】
- MJRefresh下拉加载的时候,视图不会回到原来的,而是上移一段距离
- 演讲大厅安排 解题报告
- Java关键字之static
- Java关键字之static
- STM32定时器PWM输出
- Java关键字之static
- 我知道点redis-数据结构与对象(对象)-对象存储