栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 剑指offer之[数据结构 简单]JZ59 按之字形顺序打印二叉树

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 剑指offer之[数据结构 简单]JZ59 按之字形顺序打印二叉树

题目的链接在这里: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 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号