Print the binary tree from top to bottom by layer, and the same layer node outputs from left to right. Each layer outputs one row.
The queue size before getting child nodes is the number of nodes in the current layer
ImportJava.util.*;/*Public class TreeNode {int val = 0; TreeNode left = null; TreeNode right = null; Public TreeNode (int val) {this.val = val; }}*/ Public classSolution {ArrayList<ArrayList<Integer> >Print (TreeNode proot) {ArrayList<ArrayList<Integer>> layers =NewArraylist<arraylist<integer>>(); if(Proot = =NULL) returnlayers; Deque<TreeNode> queue =NewLinkedlist<treenode>(); Queue.offer (Proot); while(!Queue.isempty ()) {ArrayList<Integer> layer =NewArraylist<integer>(); intCur = 0, size =queue.size (); while(Cur <size) {TreeNode node=Queue.poll (); Layer.add (Node.val); if(Node.left! =NULL) {queue.offer (node.left); } if(Node.right! =NULL) {queue.offer (node.right); } cur++; } layers.add (layer); } returnlayers; } }
To print a two-fork tree into multiple lines