范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

剑指offer(二十二)从上往下打印二叉树(Java版)

  描述
  从上往下打印出二叉树的每个节点,同层节点从左至右打印。 示例1
  输入:{5,4,#,3,#,2,#,1}
  返回值:  [5,4,3,2,1]
  第一种解法,使用一个队列来做完辅助工具,由于队列的特性的先进先出,第一次就把根节点放进去,然后循环遍历左右节点,依次放入队列中,最后依次从队列中取出节点,放入list中即可,代码如下public static ArrayList firstPrintFromTopToBottom(TreeNode root) {         ArrayList list = new ArrayList<>();         if(null == root){             return list;         }         Queue queue = new LinkedList<>();         queue.offer(root);         while (!queue.isEmpty()){             TreeNode poll = queue.poll();             list.add(poll.val);             if(null != poll.left){                 queue.offer(poll.left);             }             if(null != poll.right){                 queue.offer(poll.right);             }         }         return list;     }
  第二种解法,先计算出树的最大深度,然后依次循环遍历即可,代码如下public static ArrayList secondPrintFromTopToBottom(TreeNode root) {         ArrayList list = new ArrayList<>();         if(null == root){             return list;         }         int depth = depth(root);         for (int i = 0; i < depth; i++) {             foreachTree(root,i,list);         }          return list;     }      public static void foreachTree(TreeNode root,int level,ArrayList list){         if(null == root){             return;         }         if(level == 0){             list.add(root.val);         }         foreachTree(root.left,level-1, list);         foreachTree(root.right,level-1, list);     }      /**      * 求树的最大深度      * @param root      * @return      */     public static int depth(TreeNode root){         if(null == root){             return  0;         }         int l = depth(root.left);         int r = depth(root.right);         if(l > r){             return l + 1;         }else {             return r + 1;         }     }
  完整代码如下public class MainPrintFromTopToBottom {      public static void main(String[] args) {         //根节点-->10         TreeNode treeNode1 = new TreeNode(10);          //左孩子-->9         TreeNode treeNode2 = new TreeNode(9);          //右孩子-->20         TreeNode treeNode3 = new TreeNode(20);          //20的左孩子-->15         TreeNode treeNode4 = new TreeNode(15);          //20的右孩子-->35         TreeNode treeNode5 = new TreeNode(35);         //根节点的左右孩子         treeNode1.setLeft(treeNode2);         treeNode1.setRight(treeNode3);          //20节点的左右孩子         treeNode3.setLeft(treeNode4);         treeNode3.setRight(treeNode5);          ArrayList integers = secondPrintFromTopToBottom(treeNode1);         System.out.println("integers = " + integers);     }      public static ArrayList firstPrintFromTopToBottom(TreeNode root) {         ArrayList list = new ArrayList<>();         if(null == root){             return list;         }         Queue queue = new LinkedList<>();         queue.offer(root);         while (!queue.isEmpty()){             TreeNode poll = queue.poll();             list.add(poll.val);             if(null != poll.left){                 queue.offer(poll.left);             }             if(null != poll.right){                 queue.offer(poll.right);             }         }         return list;     }       public static ArrayList secondPrintFromTopToBottom(TreeNode root) {         ArrayList list = new ArrayList<>();         if(null == root){             return list;         }         int depth = depth(root);         for (int i = 0; i < depth; i++) {             foreachTree(root,i,list);         }          return list;     }      public static void foreachTree(TreeNode root,int level,ArrayList list){         if(null == root){             return;         }         if(level == 0){             list.add(root.val);         }         foreachTree(root.left,level-1, list);         foreachTree(root.right,level-1, list);     }      /**      * 求树的最大深度      * @param root      * @return      */     public static int depth(TreeNode root){         if(null == root){             return  0;         }         int l = depth(root.left);         int r = depth(root.right);         if(l > r){             return l + 1;         }else {             return r + 1;         }     } }

李楠开始爆苹果的料了正在准备8K眼镜你们信吗?作为前魅蓝品牌总裁,李楠虽然已经离开手机行业许久,但科技江湖总有他的传闻。对于科技互联网行业的前沿技术和产品,李楠非常关注且时常发表自己的观点。有意思的是,李楠近日在提到虎年纪念键4年过去了,马云砸下400多亿收购的大润发,如今发展怎么样了?在众多商业故事中,总有些比较有趣的事情,甚至因为相同的事情频繁发生,被人称之为魔咒,例如成龙所代言的产品,小霸王汾煌可乐爱多VCD,以及如今发展渐显颓势的格力,似乎只要被成龙沾上了汤加海底火山喷发影响几何?来源人民网人民日报海外版中国气象局提供的1月15日风云三号E星多通道合成图。图中显示,汤加火山喷发时形成的火山灰蘑菇云纹理结构清晰可见,形成直径近500公里的伞形云团,伞形云团周边php中序列化与反序列化把复杂的数据类型压缩到一个字符串中serialize()把变量和它们的值编码成文本形式unserialize()恢复原先变量egstoogesarray(Moe,Larry,Curgit合并分支时禁止合并特定文件问题1。在日常开发过程中经常会遇到多环境,但是环境文件不同的情况,导致每次切换git环境时候非常麻烦,可能会提交上来不需要提交的文件,一个文件来回提交修改。场景1。Git多分支配置盘点年度3款什么值得买,无鸡肋常用家电,20w真实好评上榜随着2021年的结束,以严谨客观为主导的种草天花板什么值得买,出炉年度口碑家电top3。这些值得众多网友真实推荐的家电,它们肚子里究竟装了什么货?下面来揭开这些上榜家电的神秘面纱。让出差越来越轻便的黑科技须眉剃须刀T6PRO出差旅游在我现在的生活中,占据了大部分的时间,因为我本身是一名摄像师。在公司坐班的时间真的是太少了,出差成了我的家常便饭。本来出差可以携带的都是轻量级的物品,不能大包大揽地拿太多东尚为速报亚马逊发布2022年农历新年假期安排1。亚马逊发布2022年农历新年假期安排1月25日消息,亚马逊美国站和欧洲站发布公告,提醒不在中国春节期间营业的卖家将账户设置为假期模式,以免忽略可能影响业绩的订单。亚马逊表示,账海信视像三款电视产品入选冰雪赛事观赛大屏推荐榜单中证网讯(王珞)日前,中国电子视像行业协会汰旧换优冰雪赛事优质观赛大屏产品名单公布,重点推荐了一批更适合观看冰雪赛事的大尺寸超高清高音画质电视产品,海信视像65吋ULED电视U7G自动驾驶算法技术分析与后续发展的思考前言自动驾驶涉及技术方方面面。一个成熟的自动驾驶系统主要分为软硬两部分,硬件包括但不限于计算单元传输网口传感器本身网络设备,软件包括但不限于进行任务调度的基础软件灵魂所在的算法模块支持无人驾驶空中出租车研发!波音(BA。US)再向WiskAero注资4。5亿美元智通财经APP获悉,美国波音公司(BA。US)周一表示,将再向WiskAero注资4。5亿美元,以支持该公司无人驾驶空中出租车的开发。总部位于加州的Wisk公司是由波音公司和谷歌(
滴滴为什么上市即退市了?为什么大家都在骂它?上市仅156天,滴滴宣布启动从美股退市工作因为滴滴之前之前严重违法违规收集使用个人信息,25款APP被强制下架。给大家留下了很不好的印象其实从心里讲,滴滴绝对是不想退市的,不过咱们为什么一体电脑发展不起来?为什么一体机一直发展不起来?仔细进行对比,之前在电脑城朋友那里面帮他出售戴尔的品牌电脑,其中一排摆的就是一体机,毕竟自己之前也卖过电脑,所以所以先看了一下一体机的配置进行对比CPU联想事件,柳传志和司马南你支持谁?当然支持司马南了,建议国家查查柳传志和那些高管,让他们把侵呑的国有资产吐出来。大力支持司马南。表面上司马南评论的是柳传志,实际上评论的是资本主义。伟大导师马克思早就说过资本主义是万新机小米12雷军放狠话高通又发布三款芯片复刻版nova9雷军谈骁龙8首发在2021骁龙技术峰会期间,雷军宣布小米12系列将全球首发骁龙8Gen1移动平台。今日早间,关于骁龙8的首发一事,雷军发文表示,首发是实力,更是承诺。小米12,全新购买小米AI音箱(小爱同学)后,给你的生活带了哪些改变?小爱同学对我来说,首先是一个万能DJ,在最初使用的几天里,用我爸的话说就是我算是发现了,你一直不停在折磨小爱同学,一会儿让她播放这支歌,然后马上又说不想听了,过会儿又告诉她想听越剧这群初中生开展校园碳中和行动,在屋顶种植园收获首批新能源培育绿色蔬菜这批生菜是完全靠新能源物联网种植基地培育的无公害蔬菜!最近,上外静安外国语中学八年级学生刘芷珺和小伙伴收获了校园屋顶种植园产出的首批生菜。这个最新打造的屋顶新能源现代化农业种植园,数字技术带飞中国建造北京大兴国际机场航站楼。新华社记者张晨霖摄运用卫星技术,建筑施工现场可以在15分钟内把定位精度误差控制在5毫米以内运用BIM(建筑信息模型)技术,超高层建筑在设计方案阶段就可有效减潍柴动力被低估的新能源全能选手在双碳战略和能源结构优化的背景下,新能源行业正处于市场风口,传统车企和新势力轮番登场,各路势力争相角逐。而在此其中,作为动力总成龙头企业,潍柴动力显然是被显著低估的新能源全能选手。国产品牌激光电视海外受追捧光明网讯11月30日,全球零售商百思买大幅追加海信三色激光电视L9新品订单,而且以120英寸为主,这已经是百思买20天内第二次大幅追加订单,而且订单数量也是上一笔的的7倍以上,在彩最近收到很多爱奇艺员工简历,请问为什么爱奇艺在裁员,发生了啥?爱奇艺裁员是因为年年亏损,公司入不敷出造成的,亏损主要原因是因为爱奇艺购买了大量影视版权,而国人却热衷于免费的而不愿意充会员去看正版影视,爱奇艺是民族企业,在支持正版打击盗版上做出作为传统文化,易经黄帝内经和道德经式微的根源是什么?这个问题很值得深思,也很现实。易经黄帝内经道德经这三经从现状来看确实是有些式微甚至落魄了。要究其根源,原因也是十分复杂的。一是年代久远了,三经从产生到成熟的时期离现在几千年了,期间