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

算法(40)--按之字形顺序打印二叉树

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

算法(40)--按之字形顺序打印二叉树

前言

仅记录学习笔记,如有错误欢迎指正。

题目 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 示例
  • 输入:{1,2,3,#,#,4,5}
  • 输出: [[1],[3,2],[4,5]]
解法 层次遍历的思路
import java.util.*;


public class Solution {
    public ArrayList> Print(TreeNode pRoot) {
        ArrayList> res = new ArrayList<>();
        if(pRoot == null){
            return res;
        }
      
        linkedList q = new linkedList<>();
        q.push(pRoot);
        int level = 0;
        while(!q.isEmpty()){
            ArrayList list = new ArrayList<>();
            int size = q.size();
            while(size-->0){
                TreeNode cur = q.pop();
                // 层数为奇数末尾添加元素,层数为偶数头部添加元素
                if(level % 2 == 0)
                    list.add(cur.val);
                else
                    list.add(0,cur.val);
                if (cur.left != null)
                    q.addLast(cur.left);
                if (cur.right != null)
                    q.addLast(cur.right);
            }
             res.add(list);
             level++;
        }
        return res;
        
    }

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

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

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