1.用一个队列记录当前层的节点,然后一个个取出,取出的同时将取出节点的儿子节点加入到队列中。
2.之字遍历则需要一个标志为将行进行翻转
ArrayList<Integer>(ArrayList<Integer>()) res;
flag = true;//实现奇数行翻转,偶数行不翻转
Queue temp;
temp.offer(head)
while(temp != null){
n = temp.size();
flag = ! flag;
ArryList<Integer> row;
for(int i=0;i<n;i++){
p = temp.poll();
row.add(p);
if(p.left != null){temp.offer(left);}
if(p.right != null){temp.offer(right);}
}
if(flag){
Collctions.reverse(row);
}
res.add(row);
}
标签:遍历,temp,offer,层序,flag,二叉树,null,row From: https://www.cnblogs.com/materialdog/p/17300806.html