第二题输入其实是按层遍历。。
剑指offer上的题
 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String in = sc.nextLine();
        String target = sc.nextLine();
        String[] items = in.split(",");
        System.out.println(Arrays.toString(items));
        int index = 0;
        for (int i = 1; i <= items.length; i++) {
            if(items[i-1].equals(target))
                index = i;
        }
        if(index == 0) {System.out.println(-1);return;}
        // 有右子树
        if(index * 2 + 1 <= items.length){
            // 找右子树的最左
            int left = index * 2 + 1;
            while(left * 2 <= items.length){
                left *= 2;
            }
            System.out.println(left);
            return;
        }else{ //梅子树 在判断
            if(index == 1){
                System.out.println(-1);return;
            }
            while(index != 1) {
                int p = findP(index);
                if (isLeft(index)) { //当前是父节点的左
                    System.out.println(p);
                    return;
                } else { // 当前是父节点的right
                    index = p;
                }
            }
            System.out.println(-1);
        }
    }
    public static int findP(int index){
        return index / 2;
    }
    public static boolean isLeft(int index){
        if((index & 1) == 0)
            return true;
        return false;
    }