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

直播网站的建设深圳福田建设局网站首页

直播网站的建设,深圳福田建设局网站首页,设计效果图制作软件,怎么只做自己的电商网站1.问题 给定一个二叉树的 根节点 root#xff0c;想象自己站在它的右侧#xff0c;按照从顶部到底部的顺序#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: []…1.问题 给定一个二叉树的 根节点 root想象自己站在它的右侧按照从顶部到底部的顺序返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 提示: 二叉树的节点个数的范围是 [0,100]-100 Node.val 100 2.解题思路 经历过前面几篇关于二叉树的层序遍历算法之后参见102.二叉树的层序遍历107.二叉树的层序遍历II非常容易的就可以通过这种算法解答此题基本思想就是围绕队列性质广度优先算法解决。当然深度优先算法也是可以解决的。 2.1 广度优先BFS 利用队列遍历每层节点并记录每层最后一个元素直到遍历完最后一层即可得到结果。访问顺序如下图所示 红色结点自上而下组成答案边缘以访问顺序标号。 复杂度 时间复杂度 O(N)每个节点都入队出队了 1 次。空间复杂度 O(N)使用了额外的队列空间。 2.2 深度优先DFS 1优先访问右子树即访问顺序为根-右-左 2如果当前节点所在深度还没有出现在res里因为一层就一个节点说明在该深度下当前节点是第一个被访问的节点因此将当前节点加入res中。 if len(res) depth:res.append(root.val) # 遍历右子树 if root.right:dfs(root.right, depth 1, res) # 遍历左子树 if root.left:dfs(root.left, depth 1, res)复杂度 时间复杂度 O(N)每个节点都访问了 1 次。空间复杂度 O(N)因为这不是一棵平衡二叉树二叉树的深度最少是 logN, 最坏的情况下会退化成一条链表深度就是N因此递归时使用的栈空间是 O(N) 的。 3.代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution {/**广度优先1.利用层序遍历思想统计每层最后一个元素即为答案2.分层标识*/public ListInteger rightSideView2(TreeNode root) {//空节点if(nullroot){return new ArrayList();}ListInteger resnew ArrayList();//每层的遍历结果集ListInteger tmpnew ArrayList();TreeNode node;//队列QueueTreeNode qnew LinkedList();//入队q.add(root);//分层标识q.add(null);while(!q.isEmpty()){nodeq.poll();if(null!node){tmp.add(node.val);//左右子树入队if(null!node.left){q.add(node.left);}if(null!node.right){q.add(node.right);}}//否层该层遍历完毕else{if(!tmp.isEmpty()){//收集每层最后一个元素res.add(tmp.get(tmp.size()-1));tmpnew ArrayList();q.add(null);}}}return res;}//深度优先递归public ListInteger rightSideView(TreeNode root) {//判空if(nullroot){return new ArrayList();}ListInteger resnew ArrayList();dfs(root, 0, res);return res;}private void dfs(TreeNode root, int depth, ListInteger res){if(res.size()depth){res.add(root.val);}//左右子树先遍历右子树然后左子树if(null!root.right){dfs(root.right, depth1, res);}if(null!root.left){dfs(root.left, depth1, res);}} }
http://www.dnsts.com.cn/news/167964.html

相关文章:

  • 安徽网站关键字优化域名备案信息查询官网
  • 百元做网站白云网站建设
  • 婚庆公司网站建设得多少钱昆明网站
  • 微网站平台专业建站公司推荐
  • 做刷单网站违法吗建立网站专业公司
  • 企业网站如何找词价格合理的网站建设
  • 专业的销售网站网站建设开发设计营销公司厦门
  • 网页制作与网站建设 在线作业备案网站名怎么写
  • 常见的站内推广方式有哪几种网页制作多少钱一个月
  • datadata.asp 网站 破解建自己的个人网站
  • 网站推广临沂seo基础知识培训
  • 单页网站系统百度aipage智能建站系统
  • 网站备案 互联网信息查询网站产品原型图
  • 建设小说网站费用做佣金单网站
  • 网站建好了怎么做才赚钱wordpress可视编辑器
  • 目前最流行网站开发软件网站注册协议
  • 做公众号推送的网站哪个网站可以做图片
  • 专业旅游网站建设测字算命网站开发
  • 大兴企业网站建设房屋装修案例
  • 网站项目开发流程网站的设计与实现开题报告
  • 网站开发费怎样入账flashfxp 发布网站
  • 免费网站域名注册个人游戏网站模
  • 网站做站群营口电商平台网站建设
  • 澄迈住宅与建设局网站专门做金融培训的网站有哪些
  • 为什么要做网站西安企业建站价格
  • 互联网大厂wordpress 链接优化
  • 廊坊网站开发只做英文网站 域名有什么要求
  • 外贸营销型网站php 网站建设 教学
  • 如何自己弄个免费网站沈阳seo技术
  • 网站关键词优化哪家正规济南免费网站制作