面试题07. 重建二叉树 Golang
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
例如,给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:
. 3
. / \
9 20
… / \
…15 7。
限制:
0 <= 节点个数 <= 5000
<h2>思路</h2>中序遍历就是把树拍扁得到的数组,前序遍历的第一个节点就是这个树的根节点。
根据这个根节点可以把中序遍历拆分为左右子树的中序遍历。
然后通过递归把左右子树的根节点拎出来,最终重构二叉树。
您可能感兴趣的文章:
面试题07. 重建二叉树 Golang
数据结构-树和二叉树(Golang)
数据结构中树与二叉树基础算法的比较
关于二叉树的深度算法题目及解答
数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树
golang sdk后端怎么用_Golang资深后端工程师需要了解的知识点
golang实现常用集合原理介绍
Python中的二叉排序树和平衡二叉树是什么
go 面试题
C 实现二叉查找树过程详解教程【图】