首页 > 代码库 > 把二叉树打印多行
把二叉树打印多行
题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
思路:设置两个指针,一个指向当前层最右,另一个指向现在遍历的节点,,基本就是bfs。。。加一个换行判断
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { if(pRoot==null) return new ArrayList<>(); TreeNode last=pRoot; TreeNode nlast=null; LinkedList<TreeNode> queue=new LinkedList<TreeNode>(); ArrayList<Integer> temp=new ArrayList<Integer>(); ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>(); queue.add(pRoot); while(!queue.isEmpty()){ TreeNode cur=queue.poll(); temp.add(cur.val); if(cur.left!=null){ queue.add(cur.left); nlast=cur.left; } if(cur.right!=null){ queue.add(cur.right); nlast=cur.right; } if(cur==last){ res.add(temp); temp=new ArrayList<Integer>(); last=nlast; } } return res; }
把二叉树打印多行
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。