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

如何用wordpress仿站大兴做网站公司

如何用wordpress仿站,大兴做网站公司,教育 wordpress模板,中方建设局网站Day 54 题目描述 思路 初次做法(笨):使用两个队列,一个队列存放树的节点,一个队列存放对应节点的高度,使用x存放上一个节点,highb存放上一个节点的高度,sum存放当前层的节点值之和…

Day 54

题目描述

在这里插入图片描述

思路

初次做法(笨):使用两个队列,一个队列存放树的节点,一个队列存放对应节点的高度,使用x存放上一个节点,highb存放上一个节点的高度,sum存放当前层的节点值之和,num存放当前层的节点数。
当出现x节点与队列顶部的节点高度不同时,说明遍历到该层的最后一个元素,计算平均值放入结果集res,清空sum和num。
当出现x节点与队列顶部的节点高度相同时。说明是一层的节点,更新sum和num。
以上是判断时做的,以下是判断完做的
将x指向队列顶部元素,highb指向队列顶部元素的高度,弹出两个队列顶部元素,将x的左右子树放入队列,直到队列为空。

/**1. Definition for a binary tree node.2. public class TreeNode {3.     int val;4.     TreeNode left;5.     TreeNode right;6.     TreeNode() {}7.     TreeNode(int val) { this.val = val; }8.     TreeNode(int val, TreeNode left, TreeNode right) {9.         this.val = val;10.         this.left = left;11.         this.right = right;12.     }13. }*/
class Solution {public List<Double> averageOfLevels(TreeNode root) {List<Double>res=new ArrayList<Double>();if(root==null){return res;}Double sum=0.0;Double t=0.0;Queue<TreeNode>tree=new LinkedList<TreeNode>();Queue<Integer>high=new LinkedList<Integer>();tree.offer(root);high.offer(0);int highb=0;TreeNode x=root;int num=0;while(!tree.isEmpty()){if(highb==high.peek()){sum+=x.val;num++;}else{sum+=x.val;num++;res.add(sum/num);num=0;sum=0.0;}x=tree.poll();highb=high.poll();if(x.left!=null){tree.offer(x.left);high.offer(highb+1);}if(x.right!=null){tree.offer(x.right);high.offer(highb+1);}}sum+=x.val;num++;res.add(sum/num);return res;}
}

正确做法:不应该考虑高度的问题,原因在于我们在放入一层的元素后,该层元素的子树是在队列底部的,那么其实我们对于每层元素个数是清楚的,原因如下:

  1. 我们清楚第0层只有根节点一个元素,将它的左右子树(非空的)放入队列后,再取出队列顶部元素,队列中剩下的都是第1层的元素,此时用一个参数记录即可。
  2. 同理,我们第一层知道了元素个数,并且记录后,再将这一层的节点的子树放入队列,将这两个节点弹出,剩下的就是下一层的节点个数。
    因此有以下做法。
// 思路:使用BFS
// 使用BFS,将每一层的数字加起来,然后求平均值
// 总结:时间复杂度O(N)  空间复杂度O(N)
class Solution {public List<Double> averageOfLevels(TreeNode root) {//用于BFS的队列Queue<TreeNode> queue = new LinkedList<>();queue.add(root);//用于保存结果的数组List<Double> result = new ArrayList<>();double tempSum;//临时变量,记录每层节点相加的总和int tempCount;//临时变量,记录每层节点的个数TreeNode tempNode;//临时变量,方便BFS操作while (!queue.isEmpty()){//循环遍历每一层tempSum = 0.0;tempCount = queue.size();//记录当前层的元素个数for (int i = 0; i < tempCount; i++) {tempNode = queue.poll();if (tempNode.left != null) queue.offer(tempNode.left);if (tempNode.right != null) queue.offer(tempNode.right);tempSum += tempNode.val;//将每一层的节点值相加}result.add(tempSum / tempCount);//计算平均值,并加入结果集合中}//返回结果集合return result;}
}

文章转载自:

http://0XgvKgky.jytrb.cn
http://mlWdojzX.jytrb.cn
http://3KBARlZk.jytrb.cn
http://grJP8rdR.jytrb.cn
http://i4AvK5vB.jytrb.cn
http://E3D8aBJL.jytrb.cn
http://qCjYMfDl.jytrb.cn
http://Eyuf7JJh.jytrb.cn
http://kJJ4HqKj.jytrb.cn
http://ZkDk0pMg.jytrb.cn
http://fcmOdauY.jytrb.cn
http://ABB3iCv5.jytrb.cn
http://UsxeUjj9.jytrb.cn
http://b0XZlOuc.jytrb.cn
http://BbKYDFdb.jytrb.cn
http://N9oMZtlF.jytrb.cn
http://TFnihB8V.jytrb.cn
http://vBnZAKbS.jytrb.cn
http://b1j9bXsM.jytrb.cn
http://7L1PFKLJ.jytrb.cn
http://wMIURXJY.jytrb.cn
http://LUwG74pR.jytrb.cn
http://ORrk3jyj.jytrb.cn
http://03QPc7k2.jytrb.cn
http://zndDQ44m.jytrb.cn
http://lpQv9WTQ.jytrb.cn
http://t3zI9uZ5.jytrb.cn
http://UbPVw7Dc.jytrb.cn
http://oFuEMYN1.jytrb.cn
http://5gsdrMMw.jytrb.cn
http://www.dtcms.com/wzjs/703788.html

相关文章:

  • 赣州做网站公司网站建站网站域名申请
  • 企业网站建设资金预算表《建设监理》网站
  • 一般网站隐蔽点么么进公众号开发工具下载
  • 数字货币网站开发展示型网站与营销型网站区别
  • 建设公司网站的要点刚上线的网站
  • 域名 做网站和邮箱上海服装集团网站建设
  • 网站底部横条导航代码代码网站模板
  • seo公司优化方案宁波seo深度优化平台有哪些
  • 免费公司网站源码网站开发 例子
  • 如何提高网站的排名成都网站建设 雷
  • vs2005做网站网站的安全性建设
  • 新浪云服务器做网站徐州网站关键词
  • 站长之家关键词挖掘哪个浏览器不屏蔽网站
  • 自己做的网站怎么发到网上百度指数分析数据
  • 网站免费源码下载农业信息网站建设概念
  • 用服务器建立网站今天莱芜大事件新闻最新消息
  • 怎做视频网站番禺网站建设制作
  • 17zwd一起做网站官网查网站
  • 福州企业网站模板建站重庆企业网站制作
  • html中文美食网站模板google代理
  • 厦门外贸网站搭建温州网站建设新手
  • 十堰网站整站优化公司淄博网站建设培训
  • 做期货应关注什么网站通江县城乡建设局门户网站
  • 四川成都高端网站建设网页制作对联
  • 珠海单位网站建设网站做缓存
  • 广告东莞网站建设技术支持合肥网站设计品牌
  • 个人注册公司网站空间全面的网站制作
  • 网站建设项目规划书社团宣传网站建设忄金手指专业
  • 网站建设代码编译的问题及解决方案桂林市防疫最新政策
  • 在哪里建设网站wordpress微信小程式