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

深圳市建设厅官方网站施工企业项目负责人现场带班时间

深圳市建设厅官方网站,施工企业项目负责人现场带班时间,什么样的网站利于优化,建一个商城网站需要多久一、基本层次遍历问题 1.二叉树的层次遍历 思路#xff1a;使用队列可以很好的保存遍历状态#xff0c;出队将结点左右子结点入队#xff0c;用size记录下一层的元素个数#xff0c;这样就能区分出层了 class Solution {public ListListInteger levelOr…一、基本层次遍历问题 1.二叉树的层次遍历 思路使用队列可以很好的保存遍历状态出队将结点左右子结点入队用size记录下一层的元素个数这样就能区分出层了  class Solution {public ListListInteger levelOrder(TreeNode root) {if(root null){return new LinkedList();}ListListInteger res new LinkedList();LinkedListTreeNode queue new LinkedList();queue.addFirst(root);while(!queue.isEmpty()){int size queue.size();LinkedListInteger list new LinkedList();while(size0){TreeNode node queue.remove();list.addLast(node.val);if(node.left ! null){queue.addLast(node.left);}if(node.right ! null){queue.addLast(node.right);}size--;}res.add(list);}return res;} } 2.二叉树的层次遍历II 思路此题和上一题大同小异只需要在添加结果集的时候头插法就可以了。 class Solution {public ListListInteger levelOrderBottom(TreeNode root) {if(root null){return new LinkedList();}ListListInteger res new LinkedList();LinkedListTreeNode queue new LinkedList();queue.add(root);while(!queue.isEmpty()){int size queue.size();ListInteger list new LinkedList();while(size0){TreeNode node queue.removeFirst();size--;list.add(node.val);if(node.left! null){queue.add(node.left);}if(node.right! null){queue.add(node.right);}}res.add(0,list);}return res;} } 3.锯齿形遍历  思路和层次遍历不同的是每层顺序奇偶方向交替用一个变量记录当前层的变量规则从左往右就是尾插法从右往左就是头插法 class Solution {public ListListInteger zigzagLevelOrder(TreeNode root) {if(root null){return new LinkedList();}ListListInteger res new LinkedList();LinkedListTreeNode queue new LinkedList();queue.add(root);int loop 1;while(!queue.isEmpty()){int size queue.size();LinkedListInteger list new LinkedList();for(int i 0;isize;i){TreeNode node queue.removeFirst();if(node.left! null){queue.add(node.left);} if(node.right! null){queue.add(node.right);}if(loop%20){list.addFirst(node.val);}else{list.add(node.val);}}res.add(list);loop;}return res;} } 4.N叉树的层次遍历 思路此题和基本层次遍历不同的是每次不是添加左右孩子入队而是添加孩子列表入队把添加左右孩子替换成遍历添加列表就成。 class Solution {public ListListInteger levelOrder(Node root) {if(root null){return new LinkedList();}ListListInteger res new LinkedList();LinkedListNode queue new LinkedList();queue.addFirst(root);while(!queue.isEmpty()){int size queue.size();LinkedListInteger list new LinkedList();while(size0){Node node queue.remove();list.addLast(node.val);for(Node child : node.children){queue.add(child);}size--;}res.add(list);}return res;} } 二、处理每层元素的问题 1.在每个树行中找最大值 思路还是和遍历大同小异现在不是将所有子结点都加入结果只取每层最大的比较一下就行 class Solution {public ListInteger largestValues(TreeNode root) {if(root null){return new LinkedList();}ListInteger res new LinkedList();LinkedListTreeNode queue new LinkedList();queue.addFirst(root);while(!queue.isEmpty()){int size queue.size();int max Integer.MIN_VALUE;while(size0){TreeNode node queue.remove();if(node.valmax){max node.val;}if(node.left ! null){queue.addLast(node.left);}if(node.right ! null){queue.addLast(node.right);}size--;}res.add(max);}return res;} } 2.每个树行的平均值 思路和上一题找最大值没什么差别每层相加除以size就可以。 class Solution {public ListDouble averageOfLevels(TreeNode root) {if(root null){return new LinkedList();}ListDouble res new LinkedList();LinkedListTreeNode queue new LinkedList();queue.addFirst(root);while(!queue.isEmpty()){int size queue.size();Double mean 0.0;for(int i 0;isize;i){TreeNode node queue.remove();mean node.val;if(node.left ! null){queue.addLast(node.left);}if(node.right ! null){queue.addLast(node.right);}}res.add(mean/size);}return res;} } 3.二叉树的右视图 思路层次遍历最后一个元素加入结果集就行。  class Solution {public ListInteger rightSideView(TreeNode root) {if(root null){return new LinkedList();}ListInteger res new LinkedList();LinkedListTreeNode queue new LinkedList();queue.addFirst(root);while(!queue.isEmpty()){int size queue.size();TreeNode node root;while(size0){node queue.remove();if(node.left ! null){queue.addLast(node.left);}if(node.right ! null){queue.addLast(node.right);}size--;}res.add(node.val);}return res;} } 4.找树最小角的值 思路1层次遍历记录下每层第一个元素 2从右往左层次遍历最后一个元素 //方法一 class Solution {public int findBottomLeftValue(TreeNode root) {if(root null){return -1;}int res -1;LinkedListTreeNode queue new LinkedList();queue.add(root);while(queue.size()0){int size queue.size();res queue.get(0).val;while(size0){TreeNode node queue.remove();size--;if(node.left ! null){queue.add(node.left);}if(node.right ! null){queue.add(node.right);}}}return res;} }//方法二 class Solution {public int findBottomLeftValue(TreeNode root) {if(root null){return -1;}int res -1;QueueTreeNode queue new LinkedList();queue.offer(root);while(!queue.isEmpty()){TreeNode node queue.poll();res node.val;if(node.right ! null){queue.offer(node.right);} if(node.left ! null){queue.offer(node.left);}}return res;} }
http://www.yutouwan.com/news/316033/

相关文章:

  • 网站编辑年终总结国外域名怎么购买
  • 手机网站制作教程软件网站建设画册
  • php网站授权工程建设股票龙头
  • 网站流量如何突破养殖公司起名字大全免费
  • 品牌网站建设技术1个ip可以做几个网站吗
  • 英迈思做的网站怎么样app开发用什么框架
  • 百度推广开户套模版做的网站好优化吗
  • 建设银行舒城支行网站wordpress页面图片轮播图
  • 手机网站生产app公司装修报价
  • 自己做的网页加在网站文章上为什么打不开wordpress 百度站长
  • 临海房产中介网站如何制作页面设计工作内容自述
  • 青岛做网站企业排名做软件下载网站怎么赚钱
  • 网站设计如何做策划南沙区交通和建设局网站
  • php做的网站处理速度怎么样贵阳建网站
  • 招远网站建设哪家专业金蝶
  • 彩票网站怎么做代理网站制作如皋
  • 怎样设置默认网站深圳网站制作教程
  • 佛山网站建设WordPress上传Excel
  • 苏州市城乡和建设局网站域名和服务器多少钱
  • 网站建设中单页代码网站开发工资多少
  • apache php 多个网站江苏商城网站建设服务
  • 网站页面统计代码是什么保定网站建设方案托管
  • 做机械设备类网站用什么颜色好诺德中心做网站
  • 企业网站建设的策略义乌 网站 制作
  • 湛江做网站哪家好网站技术架构图
  • 高端网站建设企业官网建设wordpress付费注册
  • 企业网站建设的价格淘宝客推广网站源码
  • 重庆网站seo公司哪家好公共资源交易中心招标流程
  • 织梦网站地图北京企业建站公司
  • 做网站能接到模具单吗在线制作图网站