当前位置: 首页 > wzjs >正文

网站的全栈建设营销型网站建设优化建站

网站的全栈建设,营销型网站建设优化建站,成都最正规的装修公司,怎么样建立自己的视频网站这道题就是一个比较简单的层序遍历,只需要利用队列存放二叉树结点,队列的size代表每层的节点数也就是平均值的除数,利用一个结果数组记录每层平均值,最后返回。 需要注意的是,平均值定义成double类型。 代码如下&…

这道题就是一个比较简单的层序遍历,只需要利用队列存放二叉树结点,队列的size代表每层的节点数也就是平均值的除数,利用一个结果数组记录每层平均值,最后返回。

需要注意的是,平均值定义成double类型。

代码如下:

class Solution {public List<Double> averageOfLevels(TreeNode root) {// 结果数组List<Double> results = new ArrayList<>();if (root == null) {return results;}Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while (!queue.isEmpty()) {// 当前层节点数量int LevelSize = queue.size();// 当前节点值的总和double levelSum = 0;// 遍历当前层所有节点for (int i = 0; i < LevelSize; i++) {// 从队列中取出一个节点TreeNode node = queue.poll();levelSum += node.val;if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}}double average = levelSum / LevelSize;results.add(average);}return results;}
}

这道题其实就是简单的二叉树层序遍历,只不过把每层的节点遍历单独拿了出来,那么其实很简单。创建一个嵌套列表List<List<Integer>> res = new ArrayList<List<Integer>>(),每层的结果用一维列表存储,最后把每层结果存进嵌套列表输出即可。

代码如下:

class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> res=new ArrayList<List<Integer>>();if(root==null){return res;}Queue<TreeNode>queue=new LinkedList<TreeNode>();queue.offer(root);while(!queue.isEmpty()){List<Integer>level=new ArrayList<Integer>();int currentSize=queue.size();for(int i=1;i<=currentSize;++i){TreeNode node=queue.poll();level.add(node.val);if(node.left!=null){queue.offer(node.left);}if(node.right!=null){queue.offer(node.right);}}res.add(level);}return res;}}

这道题就用到了一种平常不怎么常用的数据结构,双端队列,利用一个bool 变量来表示该层是从左往后还是从右往左

  • 如果从左至右,我们每次将被遍历到的元素插入至双端队列的末尾。

  • 如果从右至左,我们每次将被遍历到的元素插入至双端队列的头部。

代码如下:
 

class Solution {public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>>ans=new LinkedList<List<Integer>>();if(root==null){return ans;}Queue<TreeNode>nodequeue=new ArrayDeque<TreeNode>();//双端队列nodequeue.offer(root);boolean isOrderLeft=true;while(!nodequeue.isEmpty()){Deque<Integer> levelList=new LinkedList<Integer>();int size=nodequeue.size();for(int i=0;i<size;i++){TreeNode curNode=nodequeue.poll();if(isOrderLeft){levelList.offerLast(curNode.val);}else{levelList.offerFirst(curNode.val);}if(curNode.left!=null){nodequeue.offer(curNode.left);}if(curNode.right!=null){nodequeue.offer(curNode.right);}}ans.add(new LinkedList<Integer>(levelList));isOrderLeft=!isOrderLeft;}return ans;}
}

http://www.dtcms.com/wzjs/365537.html

相关文章:

  • 萍乡网站建设公司最近新闻热点
  • 网站都需要备案吗长尾关键词挖掘爱站工具
  • 如何做点对点视频网站网络公司优化关键词
  • 高度国际装饰公司官网处理事件seo软件
  • 开封网站优化公司郴州网站建设网络推广渠道
  • 珠海响应式网站建设网站手机版排名seo
  • 网站建设与维护属于什么岗位知名网页设计公司
  • 做刷单哪个网站找小白搜索引擎营销方法有哪些
  • 政府网站制作平台山东百度推广代理商
  • dede5.7网站搬家seo岗位工作内容
  • php网页设计优化网站标题名词解释
  • 打电话给客户怎样介绍自己是做网站的?开场白?7个湖北seo网站推广策略
  • 织梦怎么做英文版网站全媒体运营师培训机构
  • 网站独立ip多代表什么广州seo网络营销培训
  • 精美网站建设网络服务主要包括
  • 前端开发的工作内容seo综合查询网站
  • 濮阳网站建设883664做优化的网站
  • 佛山专业做网站公司哪家好杭州排名优化公司
  • 网站建设学习 服务器网站建立的步骤
  • 广州网站建设 粤icp教程seo推广排名网站
  • 匠人精神网站建设推广工作的流程及内容
  • 车商城网站建设马鞍山网站seo
  • 做旅游网站的设计感想抖音黑科技引流推广神器
  • wordpress建立文章页面优化网站页面
  • 百度上做网站模板河北seo技术
  • 手机网站大小便宜的seo网络营销推广
  • 网店美工岗位要求网站优化要多少钱
  • 购物网站管理系统网页制作代码大全
  • 创新的专业网站建设百度旗下有哪些app
  • 邢台做网站名列前茅百度客户端下载