代码如下,感觉最巧妙的地方是sublength的使用。
public void TreeLevelOrder(TreeNode root) { if(root==null) return; ArrayList<TreeNode> list=new ArrayList<>(); int curNodes=0; int sublength=1; list.add(root); while(curNodes<list.size()) { sublength=list.size(); while(curNodes<sublength) { TreeNode temp=list.get(curNodes); System.out.print(temp.val+" "); if(temp.left!=null) list.add(temp.left); if(temp.right!=null) list.add(temp.right); curNodes++; } System.out.println(); } }