題目描述:從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。java
思路:藉助隊列實現node
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode root) { ArrayList<ArrayList<Integer>> result=new ArrayList<>(); if(root==null) return result; Queue<TreeNode> queue=new LinkedList<>(); queue.add(root); while(!queue.isEmpty()){ int curNodeNum=queue.size(); ArrayList<Integer> temp=new ArrayList<>(); while(curNodeNum>0){ TreeNode node=queue.poll(); temp.add(node.val); if(node.left!=null) queue.add(node.left); if(node.right!=null) queue.add(node.right); curNodeNum--; } result.add(temp); } return result; } }