博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode105. Construct Binary Tree from Preorder and Inorder Traversal (思路及python解法)
阅读量:2242 次
发布时间:2019-05-09

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

Given preorder and inorder traversal of a tree, construct the binary tree.

Note:

You may assume that duplicates do not exist in the tree.

For example, given

preorder = [3,9,20,15,7]inorder = [9,3,15,20,7]

Return the following binary tree:

3   / \  9  20    /  \   15   7

根据前序遍历和中序遍历生成二叉树。

用递归方法很容易完成,先利用前序遍历找到根节点,然后再根据中序遍历分根节点的左子树和右子树。

需要注意的是和后序+中序有所不同,前序+中序要先写root.left,而前者要先写root.right。

class Solution:    def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:        if inorder:            prenode=preorder.pop(0)            index = inorder.index(prenode)            root=TreeNode(inorder[index])            root.left=self.buildTree(preorder, inorder[:index])            root.right=self.buildTree(preorder, inorder[index+1:])            return root

 

转载地址:http://odrbb.baihongyu.com/

你可能感兴趣的文章
sublime text3 快捷键修改
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>