博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--105--从前序与中序遍历序列构造二叉树(python)
阅读量:5072 次
发布时间:2019-06-12

本文共 1356 字,大约阅读时间需要 4 分钟。

根据一棵树的前序遍历与中序遍历构造二叉树。

注意:

你可以假设树中没有重复的元素。

例如,给出

前序遍历 preorder = [3,9,20,15,7]

中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:

3

/ \
9 20
/ \
15 7

 

1 class Solution: 2     def buildTree(self, preorder, inorder): 3         """ 4         :type preorder: List[int] 5         :type inorder: List[int] 6         :rtype: TreeNode 7         """ 8         def helper(in_left = 0, in_right = len(inorder)): 9             nonlocal pre_idx10             # if there is no elements to construct subtrees11             if in_left == in_right:12                 return None13             14             # pick up pre_idx element as a root15             root_val = preorder[pre_idx]16             root = TreeNode(root_val)17 18             # root splits inorder list19             # into left and right subtrees20             index = idx_map[root_val]21 22             # recursion 23             pre_idx += 124             # build left subtree25             root.left = helper(in_left, index)26             # build right subtree27             root.right = helper(index + 1, in_right)28             return root29         30         # start from first preorder element31         pre_idx = 032         # build a hashmap value -> its index33         idx_map = {val:idx for idx, val in enumerate(inorder)} 34         return helper()

 

转载于:https://www.cnblogs.com/NPC-assange/p/11511853.html

你可能感兴趣的文章
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
graphite custom functions
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
oracle连接的三个配置文件(转)
查看>>
Python内置函数(29)——help
查看>>
Android TextView加上阴影效果
查看>>
《梦断代码》读书笔记(三)
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
pig自定义UDF
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
枚举的使用
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
日志框架--(一)基础篇
查看>>
关于源程序到可运行程序的过程
查看>>