后序遍历:CFEGDBJLKIHA
后序遍历:CBEFDGAJIKLH
1条回答 默认 最新
关注 编程实现?可以参考
package com.renxia; import sun.reflect.generics.tree.Tree; import java.util.HashMap; import java.util.Map; public class oneZeroSix { private static Map<Integer, Integer> inMap; public static class TreeNode{ int val; TreeNode left; TreeNode right; public TreeNode(int val){ this.val = val; } } public static TreeNode myBuildTree(int[] inorder, int[] postorder, int istart, int iend, int pstart, int pend){ if(pstart > pend) return null; int post_root = pend; int in_root = inMap.get(postorder[post_root]); int num = in_root - istart; TreeNode root = new TreeNode(postorder[post_root]); root.left = myBuildTree(inorder, postorder, istart, in_root-1, pstart, pstart+num-1); root.right = myBuildTree(inorder, postorder, in_root+1, iend, pstart+num, pend-1); return root; } public static TreeNode buildTree(int[] inorder, int[] postorder){ int n = inorder.length; inMap = new HashMap<>(); for(int i=0; i < n; i++){ inMap.put(inorder[i], i); } return myBuildTree(inorder, postorder, 0, n-1, 0, n-1); } public static void preOrder(TreeNode root){ if(root == null) return; System.out.print(root.val + " "); preOrder(root.left); preOrder(root.right); } public static void main(String[] args) { int[] inorder = new int[]{9, 3, 15, 20, 7}; int[] postorder = new int[]{9, 15, 7, 20, 3}; TreeNode root = buildTree(inorder, postorder); preOrder(root); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 多址通信方式的抗噪声性能和系统容量对比
- ¥15 winform的chart曲线生成时有凸起
- ¥15 msix packaging tool打包问题
- ¥15 finalshell节点的搭建代码和那个端口代码教程
- ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
- ¥15 Centos / PETSc / PETGEM
- ¥15 centos7.9 IPv6端口telnet和端口监控问题
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 海浪数据 南海地区海况数据,波浪数据