(劍指offer)把二叉樹列印成多行
阿新 • • 發佈:2018-12-09
時間限制:1秒 空間限制:32768K 熱度指數:101798
題目描述
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
import java.util.ArrayList; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ import java.util.*; public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { //BFS ArrayList<ArrayList<Integer>> listAll = new ArrayList<ArrayList<Integer>>(); if(pRoot == null){ return listAll; } ArrayDeque<TreeNode> que = new ArrayDeque<TreeNode>(); que.add(pRoot); while(que.isEmpty() == false){ int size = que.size(); ArrayList<Integer> list = new ArrayList<Integer>(); for(int i = 0; i < size; i++){ TreeNode node = que.remove(); list.add(node.val); if(node.left != null){ que.add(node.left); } if(node.right != null){ que.add(node.right); } } listAll.add(list); } return listAll; } }