问题描述:
二叉树的节点按照从上到下,从左到右,从1开始编号,其中空着的节点用“#”表示。输出树的左视图,如:
输入:1 2 3 # 4 5 6 # # # # 7 8
输出:1 2 4 7
public class LeftViewTree {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int i= 0; //当前多少层
int j = 0; //当前层的第几个节点
boolean flag = false; //是否找到当层的第一个非空节点
while(in.hasNext()) {
i = i+1;
j = 1;
flag = false;
while(j <= Math.pow(2,i-1)) {
if(!in.hasNext())
return;
String s = in.next();
if(flag == false && !s.equals("#")){
System.out.print(s + " ");
flag = true;
}
j++;
}
}
}
}