ソードフィンガーオファー32-I。二分木を上から下に印刷する
キューの使用法:https://www.runoob.com/java/data-queue.html
Queue <String> queue = new LinkedList <String>();
//要素を追加します
queue.offer( "a");
System.out.println( "poll =" + queue.poll()); //最初の要素を返し、キューから削除します
System.out.println( "element =" + queue.element()); //最初の要素を返します
System.out.println( "peek =" + queue.peek()); //最初の要素を返します
配列リスト
コレクションリストのサイズを見つけます。size()
要素list.add(xx)を追加します
指定された位置にある要素を取得しますlist.get(index)
class Solution {
public int[] levelOrder(TreeNode root) {
if(root==null) return new int[0];
Queue<TreeNode> q=new LinkedList<>();
List<Integer> list=new ArrayList<>();
q.add(root);
while(!q.isEmpty()){
TreeNode node=q.poll();
list.add(node.val);
if(node.left!=null) q.add(node.left);
if(node.right!=null) q.add(node.right);
}
int[] res=new int[list.size()];
for(int i=0;i<list.size();i++){
res[i]=list.get(i);
}
return res;
}
}