剑指offer:按之字形顺序打印二叉树
来源:互联网 发布:拓展人脉的软件 编辑:程序博客网 时间:2024/06/12 19:47
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/*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>> listAll=new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> list; if(pRoot==null)return listAll; Queue<TreeNode> queue=new LinkedList<TreeNode>(); queue.offer(pRoot); int count=0; while(!queue.isEmpty()){ list=new ArrayList<Integer>(); int size=queue.size(); //按照层数遍历,即一个for循环代表一层 for(int i=0;i<size;i++){ //弹出当前节点值 TreeNode temp=queue.poll(); //count用来区别奇数还是偶数层,然后调换位置 if(count%2==0){ //偶数层从左往右排 list.add(temp.val); }else{ //奇数层从右往左排 list.add(0,temp.val); } //当前节点的左右子树如果不为空,分别入队列 if(temp.left!=null) queue.offer(temp.left); if(temp.right!=null) queue.offer(temp.right); } listAll.add(list); count++; } return listAll; }}
阅读全文
0 0
- 剑指offer--按之字形顺序打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 《剑指offer》——按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- [剑指offer]按之字形顺序打印二叉树
- 剑指offer(五十三)之按之字形顺序打印二叉树
- 剑指Offer--061-按之字形顺序打印二叉树
- 《剑指offer》:[61]按之字形顺序打印二叉树
- 剑指offer(56)-按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer|按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 【剑指Offer】按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树-php
- 剑指offer-59.按之字形顺序打印二叉树
- BZOJ 2081 Beads Hash
- 基础Win32知识
- FastStone Capture 8.4 注册码(转)
- C++中的多态
- mybatis和hibernate的区别
- 剑指offer:按之字形顺序打印二叉树
- 用小说的形式讲解Spring(2) —— 注入方式哪家强
- Linux Shell学习
- dubbo入门
- 常见数据类型的克隆(内含对象的深度克隆)
- wsdl加入header部分
- textview加矩形边框和圆角边框
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Minimum Distance in a Star Graph
- mybatis的动态SQL(一)if标签的使用