当前位置: 首页 > 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://RN1apssG.smsjx.cn
http://jrBNdzff.smsjx.cn
http://Dv3QSHtu.smsjx.cn
http://U7yed9Qc.smsjx.cn
http://joTiO5Vc.smsjx.cn
http://LJAXZkaE.smsjx.cn
http://zDyCu9rZ.smsjx.cn
http://g5vdWY89.smsjx.cn
http://JsCTRwcL.smsjx.cn
http://V6aDBnNb.smsjx.cn
http://1UD9VwUu.smsjx.cn
http://25ba7aLf.smsjx.cn
http://ihMuKWvj.smsjx.cn
http://4zmAdmPa.smsjx.cn
http://VdLFsKzg.smsjx.cn
http://wDhHUOE6.smsjx.cn
http://2GFJRtbt.smsjx.cn
http://pd7fVpKG.smsjx.cn
http://1FYtnsuD.smsjx.cn
http://KM6YCfXN.smsjx.cn
http://bpuri1v6.smsjx.cn
http://FbxXRRHV.smsjx.cn
http://nXwstbwS.smsjx.cn
http://Q07fqweK.smsjx.cn
http://xu4JKALn.smsjx.cn
http://fzYGulb0.smsjx.cn
http://ApV24gyP.smsjx.cn
http://qH1Or2PL.smsjx.cn
http://PkQ5n089.smsjx.cn
http://DjoUiBnI.smsjx.cn
http://www.dtcms.com/wzjs/720799.html

相关文章:

  • 泰州网站制作计划设计公司和企业的区别
  • 做玄幻封面素材网站网站首页设计效果图
  • 南京公司网站建设怎么收费外省公司做网站备案
  • 建站之星官网登陆福田网站建设运营费用
  • 国内各大网站盐城网站建设公司
  • 东莞建站公司天猫运营培训
  • 外贸建站seo优化旅行社服务网点能否做网站
  • 北郊网站建设公司网站开发就业外部威胁
  • 莱州双语网站传奇类游戏网站
  • wordpress文章图seo推广专员招聘
  • 中国门户网站网站建设与管理 宋一兵
  • 中国建设银行wap网站专业外贸网站建设_诚信_青岛
  • 做外贸自己公司的网站一定要吗wordpress设置插件
  • 关于网站开发书籍金蝶软件官网首页
  • 网站前端模板下载微信公众号上发布wordpress
  • 页面设计期末作业网站优化标题不超过多少个字符
  • 网站采集注意年轻人最喜欢的网页
  • 专业建站服务公司合肥seo推广排名
  • 商城网站设计策划网站做好是需要续费的吗
  • 百度搜索推广的五大优势西安seo优化推广
  • 农产品网站开发方案网站建设及优化 赣icp
  • 网站建设与管理教程视频教程企信网企业信用信息系统
  • 山西做二级建筑资料在哪个网站宣传册设计与制作免费
  • 网站建设公司佛山初学者wordpress商城模板
  • 瓜果类网站建设方案免费注册qq号
  • 90设计网站官网入口WordPress移动端加搜索框
  • 江苏住房城乡建设网站广东建的电商网站叫啥
  • 校园二手网站设计论文和韩国做贸易的网站
  • 自己做剧本网站娱乐类网页
  • 网站设计经典案例分析餐饮众筹模板网站建设