从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
想当初自己在这种题目上栽了一个跟头,本应该是使用arraylist存储每一行节点,但是其实用queue存储之后整个程序的判断逻辑就清楚很多,因此数据结构活学活用,就非常好了。
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer> > result = new ArrayList<ArrayList<Integer> >(); if(pRoot != null){ Queue<TreeNode> up = new LinkedList&l