[学习笔记]二叉树的遍历 根据二叉树的中序遍历和前序遍历,还原二叉树

省选前补一补普及组的知识点

一次考试发现自己不会枚举所有二叉树

先序遍历:根左右

中序遍历:左根右

后序遍历:左右根

根据二叉树的中序遍历和前序遍历,还原二叉树

就是前序遍历找到每个子树的根,中序遍历找到每个子树的sz。然后递归。O(n)复杂度

所以一些需要枚举二叉树的题(反正都是卡特兰数范围内的暴力)

可以n!枚举中序遍历,然后还原并且判断是否合法

或者各种胡乱枚举,,然后去重等等。

有没有O(n*卡特兰数)的算法啊~~

 

直接枚举括号序列,然后再建树即可

要使得每个点的儿子只有两个,,,大概配合着dfs枚举,,

猜你喜欢

转载自www.cnblogs.com/Miracevin/p/10392513.html