leetcode-mid-Linked list- 105. Construct Binary Tree from Preorder and Inorder Traversal
2024-08-26 14:19:13
mycode 43.86%
# 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 len(inorder)==0 or len(preorder)==0:
return
pos = inorder.index(preorder[0])
root = TreeNode(preorder[0])
root.left = self.buildTree(preorder[1:pos+1], inorder[:pos])
root.right = self.buildTree(preorder[pos+1:],inorder[pos+1:])
return root
参考:
可能map的方法会比index快
class Solution(object):
def buildTree(self, preorder, inorder):
"""
:type preorder: List[int]
:type inorder: List[int]
:rtype: TreeNode
"""
if not inorder or not preorder:
return None
map = {val:idx for idx, val in enumerate(inorder)}
pos = map[preorder[0]]
root = TreeNode(preorder[0])
root.left = self.buildTree(preorder[1:pos+1], inorder[:pos])
root.right = self.buildTree(preorder[pos+1:],inorder[pos+1:])
return root
最新文章
- Hibernate 随记(数据库映射流程)
- REGEX.C GNU 提取过滤数据
- 黑马程序员-循环引用问题和weak
- 大话immutable.js
- PHP学习笔记:keditor的使用
- C#报错:创建调试信息文件 ……obj\Debug\model.pdb: 拒绝访问
- Asp.net设计模式笔记之一:理解设计模式
- Springfox Reference Documentation
- MySQL备份的shell脚本
- Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印
- ltrace killed by SIGTRAP
- HDU5319
- nyoj 36
- javascirpt怎样模仿块级作用域(js高程笔记)
- 自己编写JavaScript的sort函数
- SQL - for xml path('') 实现多行合并到一行, 并带有分隔符
- JavaScript中date 对象常用方法
- xpath的常见操作
- 简单的卷积神经网络(CNN)的搭建
- windows系统IIS服务安装
热门文章
- 【模板】最长上升子序列(LIS)及其优化 &; 洛谷 AT2827 LIS
- 关系型数据库为什么喜欢使用B+树作为索引结构? (转)
- Zookeeper — 应用场景
- 2019牛客暑期多校训练营(第八场) - B - Beauty Values - 水题
- j网络爬虫之WebMagic
- js验证小数或者整数
- There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.
- man - 格式化并显示在线帮助手册页
- Ant Design -- 图片可拖拽效果,图片跟随鼠标移动
- DevExpress v18.2版本亮点——Office File API 篇