java计算一个已知前序和后序遍历的二叉树中中序遍历有几种可能性

public class TreeTraversal {
  
    public int intree(String preTree, String postTree) {
        if(preTree.length()==1){
            return 1;
        }
        int count=0;
        for (int i = 0; i < preTree.length() - 1; i++) {
            for (int j = 1; j <= postTree.length() - 1; j++) {
                if(preTree.charAt(i)==postTree.charAt(j)&&preTree.charAt(i+1)==postTree.charAt(j-1))count++;
            }
        }
        return count*2;
    }

    public static void main(String[] args) {
        TreeTraversal treeTraversal = new TreeTraversal();
        System.out.println(treeTraversal.intree("ABDEGCF", "DGEBFCA"));
        System.out.println(treeTraversal.intree("ABC", "CBA"));
    }
}

 

输出结果为:

4
4

 

 

你可能感兴趣的:(算法)