51.之字形顺序打印二叉树
2017-05-31 09:08
399 查看
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解题思路:先都是按从左到右存入list,然后判断奇数层list输出,偶数层先反转list再输出
import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; import java.util.Collections; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>(); Queue<TreeNode> queue=new LinkedList<TreeNode>(); int level=0; if(pRoot==null){ return result; } queue.offer(pRoot); ArrayList<Integer> list; while(!queue.isEmpty()){ list =new ArrayList<Integer>(); int size=queue.size(); for(int i=0;i<size;i++){ TreeNode node=queue.poll(); if(node.left!=null) { queue.offer(node.left); } if(node.right!=null){ queue.offer(node.right); } list.add(node.val); } if(level==1){ Collections.reverse(list); } result.add(list); level=level==0?1:0; } return result; } }
相关文章推荐
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 《剑指Offer》学习笔记--面试题61:按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- 剑指offer--按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 剑指Offer--061-按之字形顺序打印二叉树
- 按照之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 按之字形顺序打印二叉树Java实现