已知前序、中序构造二叉树(关键词:二叉树/前序/先序/中序/后序/先根/中根/后根/遍历/搜索/查找)

本文介绍了一种利用前序遍历和中序遍历序列构建二叉树的方法,通过递归算法找到根节点,并划分左右子树,最终完成整棵树的构建。这种方法在算法设计和数据结构学习中具有重要意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已知前序、中序构造二叉树

实现

def buildTree(self, preorder, inorder):
	if inorder:
		rootVal = preorder.pop(0)
		rootIdx = inorder.index(rootVal)

		root = TreeNode(rootVal)
		root.left = self.buildTree(preorder, inorder[:rootIdx])
		root.right = self.buildTree(preorder, inorder[rootIdx+1:])

	return root

参考文献

  1. 105. Construct Binary Tree from Preorder and Inorder Traversal - LeetCode
  2. 这是印象笔记中的笔记,如果是在优快云手机APP上查看此博客,请在印象笔记手机APP中搜索该参考文献:https://app.yinxiang.com/shard/s44/nl/9329661/5afbcd1d-6289-410d-9580-c54e9c412c97;
  3. 20 前序中序求后序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值