/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {//做完后弄清queue和priority queue的区别
List<List<Integer>> a=new LinkedList<List<Integer>>();//答案中用linkedlist(奇怪哈,用ArrayList和List都出错)
Queue<TreeNode> b=new LinkedList<TreeNode>();//答案中用linkedlist//Queue<Integer> b=new LinkedList<Integer>()这个写法错误
if(root==null) return a;//if(root==null) return null;写法错误
b.offer(root);
while(!b.isEmpty())//while要小写
{
int rowsize=b.size();//用.size()来获取当前行内元素的长度
List<Integer> c=new LinkedList<Integer>();//用它来存放Queue中的当前行内容
for(int i=1;i<=rowsize;i++)
{
if(b.peek().left!=null)b.offer(b.peek().left);//queue中的添加用offer//b.peek().left.val!=null这个写法错
if(b.peek().right!=null)b.offer(b.peek().right);//用.peek()获取queue的首位元素
c.add(b.poll().val);//c.add(b.peek())写法错误
}
a.add(c);//将当前行的所有元素放入a
}
return a;
}
}
<img src="https://img-blog.csdn.net/20150126084807286?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaml6aGlfZGVfd28=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />