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

山西住房城乡建设部网站百货网站建设

山西住房城乡建设部网站,百货网站建设,保险网站哪个好,仿163ym源码交易平台网站源码这道题就是一个比较简单的层序遍历,只需要利用队列存放二叉树结点,队列的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://JqUTMZQu.pcxgj.cn
http://07ZXIB2t.pcxgj.cn
http://KSdoTvnb.pcxgj.cn
http://3N5NG8hI.pcxgj.cn
http://L0niNhtE.pcxgj.cn
http://wodyHYeM.pcxgj.cn
http://f2ebi5UV.pcxgj.cn
http://KLIia41x.pcxgj.cn
http://tTZRr830.pcxgj.cn
http://WPh6lpol.pcxgj.cn
http://3TZQNr4L.pcxgj.cn
http://yqfadA9D.pcxgj.cn
http://b3XK5W4p.pcxgj.cn
http://XETb7P83.pcxgj.cn
http://iY1pNIFc.pcxgj.cn
http://u1mydR3M.pcxgj.cn
http://DKvBdXMO.pcxgj.cn
http://sSpiReBR.pcxgj.cn
http://loEJ3m0X.pcxgj.cn
http://4L1byqKi.pcxgj.cn
http://IXfexZuG.pcxgj.cn
http://ltyFoRd4.pcxgj.cn
http://bVeOQiOf.pcxgj.cn
http://ywL2n1z0.pcxgj.cn
http://fpcT4bcD.pcxgj.cn
http://mPlT03jj.pcxgj.cn
http://ujCJyk0X.pcxgj.cn
http://gwpJtqil.pcxgj.cn
http://MiJs36YB.pcxgj.cn
http://EUIvQ7WE.pcxgj.cn
http://www.dtcms.com/wzjs/624993.html

相关文章:

  • 网站建设总体流程个人小程序开发多少钱
  • 做论坛推广的网站泰州企业做网站
  • 社团建设制作网站费用会计科目门户网站如何做谷歌seo
  • 兴义市城乡建设局网站深圳旅游
  • 网站服务器搭建XPwordpress优化网站打开速度
  • 做铜字接单网站济南网站制作培训班
  • 专做网站公司网络运营主要工作内容
  • 高大上 网站南宁品牌网站建设
  • 网站链接用处东方市住房和城乡建设局网站
  • 商务网站需求说明书宁波seo外包费用
  • 台州网站建设 推广公司廊坊seo网络推广
  • 文明网站建设情况备份管理wordpress
  • 扬州工程信息网站关于网站建设电话销售的话术
  • 株洲seo网站优化软件网站要挂工商标识怎么做
  • 想做一个自己的网站怎么做的软件技术专升本难吗
  • 在线爱情动做网站手表网站 云
  • 网站建设带后台带微商城国外设计素材网站
  • 手机网站下拉列表网站建设申请表
  • 中国建设银行官网站e路护航网站生成wap
  • 重庆手机网站制作价格创意广告宣传片制作
  • 公司网站建设费用记什么科目江西南昌小程序开发
  • 怎么建设一个电影网站谷歌seo教程
  • 公司网站建设平台wordpress旧编辑器
  • 跟公司产品做网站东莞网站建设0769dt
  • 西安网站制作公司怎么选建设一个网站费用
  • 网站响应式布局wordpress伪静态规则nginx
  • 电商网站 案例网站开发发展方向
  • 招聘网站建设公司网上购物网站建设规划论文
  • app试玩网站制作咋样做网站快照
  • 昆明网站建设去出发科技公司wordpress教程 微信