• 剑指offer-按之字形顺序打印二叉树


    题目描述

    请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
     
    使用双向链表,先把当前行按顺序打印,再取出当前行并将下一行存入链表
     1 public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {//树 双向链表 mytip
     2         ArrayList<ArrayList<Integer>> re = new ArrayList<>();
     3         LinkedList<TreeNode> queue = new LinkedList<>();
     4         if(null==pRoot){
     5             return re;
     6         }
     7         queue.add(null);
     8         queue.add(pRoot);
     9         
    10         boolean flag = true;
    11         while(queue.size()>1){//最后一个为null
    12             TreeNode node = queue.poll();//当前不为null时,取出并将孩子结点存入链表
    13             if(null==node){//当前为null是将链表中数打印
    14                 ArrayList<Integer> list = new ArrayList<>();
    15                 Iterator<TreeNode> iter = null;
    16                 if(flag){
    17                     iter = queue.iterator();//正向
    18                 }else{
    19                     iter = queue.descendingIterator();//反向
    20                 }
    21                 while(iter.hasNext()){
    22                     TreeNode n = iter.next();
    23                     list.add(n.val);
    24                 }
    25                 if(queue.size()>0){
    26                     queue.add(null);
    27                 }          
    28                 re.add(list);
    29                 flag = !flag;
    30                 continue;//必须加
    31             }
    32             if(null!=node.left){
    33                 queue.add(node.left);
    34             }
    35             if(null!=node.right){
    36                 queue.add(node.right);
    37             }
    38         }
    39         return re;
    40     }
  • 相关阅读:
    [转]c#的DateTime.Now函数详解
    PHP学习笔记
    【错误】MsDepSvc.exe 站用了80端口/IIS的0×8ffe2740错误解决方
    IIS连接数
    Mybatis3.2.1整合Spring3.1
    linux常用命令大全
    Spring3.2新注解@ControllerAdvice
    SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解
    Console命令详解,让调试js代码变得更简单
    String.format
  • 原文地址:https://www.cnblogs.com/zhacai/p/10679898.html
Copyright © 2020-2023  润新知