按之字形顺序打印二叉树
来源:互联网 发布:maya破解软件下载 编辑:程序博客网 时间:2024/04/28 14:41
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
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 { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer> > result=new ArrayList<ArrayList<Integer> >(); if(pRoot==null) return result; boolean flag=true; 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){ end=que.size(); begin=0; if(flag==true){ result.add(list); }else{ result.add(reverse(list)); } flag=!flag; list=new ArrayList<Integer>(); }} return result; } ArrayList reverse(ArrayList<Integer> list){ ArrayList<Integer> list1=new ArrayList<Integer>(); for(int i=list.size()-1;i>=0;i--){list1.add(list.get(i)); } return list1;}}
0 0
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 牛客网 | 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 55.按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 【59】按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- Q61:按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- Windows编程入门-无效区域和有效区域
- 关于qt中的tr()函数
- XSI Vertex Animation and OGRE Facial Animation
- Android Activity 界面
- java中的getAttribute和getParameter
- 按之字形顺序打印二叉树
- matlab中使用CUDA kernel GPU加速
- Mybatis极其(最)简(好)单(用)的一个分页插件
- 关于atexit,Linux中的t权限,Linux中的FILE结构体
- “==“与“equals”区别
- Android Studio实用插件集合
- Ny17单调递增最长子序列
- CentOS7安装git
- Linux ./configure --prefix命令