【Leetcode】106. 从中序与后序遍历序列构造二叉树

【Leetcode】106. 从中序与后序遍历序列构造二叉树

题目链接一

【Leetcode】106. 从中序与后序遍历序列构造二叉树

思路

此类题型,由先序序列跟中序序列,或者由后序序列跟中序序列,共同点都是需要中序序列,结合先序序列或者后序序列中,递归遍历二叉树的顺序性,找到每一次递归时的根节点在中序序列中的位置,结合边界,当前根节点对应的中序序列,跟后序序列,计算出当前递归时,以及左右子树的中序序列跟后续序列,不断递归构造出跟节点,以及对应的左右子树的关系

代码

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func buildTree(inorder []int, postorder []int) *TreeNode {
   
   
    // hash表优化查询后序序列中的元素在中序序列中的位置
	hash := map[int]int{
   
   }
	for idx, val := range inorder {
   
   
		hash[val] = idx
	}
    // 序列的长度
	n := len(inorder)
	var fun func
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值