从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行
IDEA
层序法遍历二叉树
CODE
import java.util.*;/*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) return result; ArrayList<Integer> list=new ArrayList<Integer>(); Queue<TreeNode> que=new LinkedList<TreeNode>(); que.add(pRoot); int begin=0,end=1; while(!que.isEmpty()){ TreeNode cur=que.remove(); list.add(cur.val); begin++; if(cur.left!=null) que.add(cur.left); if(cur.right!=null) que.add(cur.right); if(begin==end){ result.add(list); begin=0;end=que.size(); list=new ArrayList<Integer>(); } } return result; } }
新闻热点
疑难解答