题目的链接在这里:https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
- 题目大意
- 一、示意图
- 二、解题思路
- 正常求法
题目大意 描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)
一、示意图 二、解题思路
正常求法正常求法
代码如下:
import java.util.ArrayList;
import java.util.*;
public class Solution {
public ArrayList > Print(TreeNode pRoot) {
//按照之字形打印二叉树
//首先那还是层次遍历 其次就是先输入的是左边还是右边
ArrayList> arrayLists=new ArrayList<>();
//先进行边界判断
if(pRoot==null)
return arrayLists;
//层次遍历来输出 使用队列
Queue queue=new linkedList<>();
int size;
//第一个分开讨论
ArrayList arrayList=new ArrayList<>();
arrayList.add(pRoot.val);
//然后把这个进结果集
arrayLists.add(arrayList);
//思路就是 依然还是左右的方法 但是来判断需不需要逆序
if(pRoot.left!=null){
queue.add(pRoot.left);
}
if(pRoot.right!=null){
queue.add(pRoot.right);
}
//然后判断接下来是右左 还是左右
boolean flag=true;
TreeNode temp;
while (!queue.isEmpty()){
//思路差不多 先进行判断当前层有几个
size=queue.size();
ArrayList arrayList1=new ArrayList<>();
for(int i=0;i


![java 剑指offer之[数据结构 简单]JZ59 按之字形顺序打印二叉树 java 剑指offer之[数据结构 简单]JZ59 按之字形顺序打印二叉树](http://www.mshxw.com/aiimages/31/305935.png)
