二叉树问题-根据前序遍历结果和中序遍历结果得出后序遍历结果
2012-01-27 19:42
288 查看
根据二叉树的前序遍历结果和中序遍历结果得出后序遍历结果
例如:
输入:
前序序列:A B C D E F G
中序序列:C B E D A F G
输出:
后序序列:C E D B G F A
具体函数
注:三个参数分别是前序遍历结果列表,中序遍历结果列表,后序遍历结果列表。
例如:
输入:
前序序列:A B C D E F G
中序序列:C B E D A F G
输出:
后序序列:C E D B G F A
具体函数
public static void setLRNByNLRAndLNR(List<Object> nlrList, List<Object> lnrList, List<Object> lrnList) { // 在前序列表中查看第一个元素,此元素即为此树的根节点 // 查看在前序列表中找到的元素在中序列表中的位置,并以此为位置把树分开,得到两颗新的树 if (null != nlrList && null != lnrList && nlrList.size() > 0 && lnrList.size() > 0) { Object first = nlrList.get(0); int index = lnrList.indexOf(first); // 左子树 setLRNByNLRAndLNR(nlrList.subList(1, index + 1), lnrList.subList(0, index), lrnList); // 右子树 setLRNByNLRAndLNR(nlrList.subList(index + 1, nlrList.size()), lnrList.subList(index + 1, lnrList.size()), lrnList); // 添加节点 lrnList.add(first); } }
注:三个参数分别是前序遍历结果列表,中序遍历结果列表,后序遍历结果列表。
相关文章推荐
- Python练手之根据前序和中序&根据中序和后序重建二叉树,输出前序、中序和后序遍历结果
- 重建二叉树---根据前序和中序遍历结果重建二叉树
- 根据前序和中序遍历的结果建立二叉树
- 题目1078:二叉树遍历(根据前序和中序遍历结果,获得后序遍历)
- 根据前序和中序遍历结果重建二叉树
- 小白书之根据二叉树的先序遍历和中序遍历得出后序遍历
- Java二叉树(二)--根据前序和中序遍历求后序遍历
- 重建二叉树(根据前序和中序遍历结果)
- 根据前序和中序遍历结果重建二叉树
- 第四题:根据前序和中序遍历结果重建二叉树(Arrays常用方法)
- 重建二叉树---根据前序和中序遍历结果重建二叉树
- 给定二叉树的前序遍历结果,输出所有可能的中序遍历的结果
- 每日算法三道之根据二叉树的前中序遍历结果求后序遍历
- 根据前序和中序便遍历构造完整二叉树,并输出层次遍历
- 【面试题】剑指Offer-6-根据前序和中序遍历重建二叉树
- 算法面试:根据前序遍历结果序列和中序遍历结果序列重构二叉树
- 【二叉树1】根据前序和中序遍历建立一棵二叉树
- poj2255 根据二叉树的前序和中序遍历 求出树的后序遍历
- 二叉树的前序遍历、中序遍历和后序遍历及其算法
- 根据二叉树前序遍历和中序遍历的结果,重建出该二叉树并后序遍历之 java代码