有一棵树,想在遍历的时候记录特定节点出现的位置,如节点a出现在第二层的第三个节点,就记录为(2,3),用后序遍历。

解决方案 »

  1.   

    你试一下   根节点为 0层    我只测试到2层好使   初始放进去的时候 level = -1 number =0  public static void posOrder(Tree tree , int level , boolean node ,int number) { 
       level++;      
       if (level==0) {
    number = 1;
    }  if (level==1) {
    if(node==false){
    number = 1;
    }else {
    number = 2;
    }
    }if (level!=0 && level !=1) {
       if (node==false) {
       number = number*2-1;
       }else {
       number = number*2;
       }
    }         
          if (tree != null) {
                posOrder(tree.left,level,false,number);   
                posOrder(tree.right,level,true,number);   
                System.out.print(tree.data + "( "+level+","+number+")");    
            }   
        }