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

网站备案账户名如何查询网站建设推荐华网天下

网站备案账户名如何查询,网站建设推荐华网天下,扬州网官方微博,wordpress 单栏模板好的#xff0c;我来用中文详细解释这段代码的算法思想。 问题描述 题目要求给定一个二叉树的根节点#xff0c;从树的右侧看过去#xff0c;按从上到下的顺序返回看到的节点值。即#xff0c;我们需要找到每一层的最右侧节点并将其加入结果中。 算法思想 这道题可以通… 好的我来用中文详细解释这段代码的算法思想。 问题描述 题目要求给定一个二叉树的根节点从树的右侧看过去按从上到下的顺序返回看到的节点值。即我们需要找到每一层的最右侧节点并将其加入结果中。 算法思想 这道题可以通过广度优先搜索BFS来解决。BFS的特点是逐层遍历树的节点非常适合在每一层获取最右侧的节点。以下是具体的算法步骤 使用队列进行层序遍历 我们采用BFS来逐层遍历树BFS通常会使用队列Queue来实现。首先将树的根节点放入队列中。 每层节点的遍历 在每一层开始时我们记录队列的大小即当前层的节点数。然后我们依次从队列中取出该层的每一个节点处理这些节点并将它们的左右子节点加入队列以便下一层继续遍历。在遍历当前层的节点时我们将当前层的最后一个节点即最右侧的节点保存下来。 记录每层最右侧的节点 对于每一层的节点最后一个处理的节点就是该层的最右侧节点。因此在遍历每层的过程中我们将每层最后一个节点的值添加到结果列表中。 返回结果 当遍历完所有层后结果列表中就存储了从上到下每一层的最右侧节点值。 java solution class Solution {public ListInteger rightSideView(TreeNode root) {ListInteger result new ArrayList();if(root null) return result;QueueTreeNode queue new LinkedList();queue.offer(root);while(!queue.isEmpty()) {int size queue.size(); //获取当前层的节点数TreeNode rightmostNode null; //保存当前层的最右侧节点for(int i 0; i size; i) {TreeNode currentNode queue.poll(); //取出当前节点rightmostNode currentNode;if(currentNode.left ! null) queue.offer(currentNode.left);if(currentNode.right ! null) queue.offer(currentNode.right);}if(rightmostNode ! null) result.add(rightmostNode.val);}return result;} }关键步骤解释 初始化结果列表ListInteger result new ArrayList(); 用于存储每层的最右侧节点值。 判断根节点是否为空if (root null) return result; 如果根节点为空则直接返回空列表因为没有节点可以被观察到。 使用队列来实现BFS QueueTreeNode queue new LinkedList(); 初始化一个队列。queue.offer(root); 将根节点加入队列准备开始逐层遍历。 逐层遍历 while (!queue.isEmpty()) 表示只要队列中还有节点继续进行遍历。int size queue.size(); 获取当前层的节点数量。TreeNode rightmostNode null; 初始化一个变量来保存当前层的最右侧节点。 遍历当前层的所有节点 for (int i 0; i size; i) 遍历当前层的所有节点。TreeNode currentNode queue.poll(); 从队列中取出当前节点。rightmostNode currentNode; 每次循环都会更新最右侧节点的值最后一次更新的节点就是该层的最右侧节点。if (currentNode.left ! null) queue.offer(currentNode.left); 将左子节点加入队列如果存在。if (currentNode.right ! null) queue.offer(currentNode.right); 将右子节点加入队列如果存在。 记录每层的最右侧节点 if (rightmostNode ! null) result.add(rightmostNode.val); 将当前层的最右侧节点值添加到结果列表中。 返回结果 return result; 当遍历完所有层后返回结果列表。 时间复杂度 此算法的时间复杂度为 (O(n))其中 (n) 是树中节点的数量。因为每个节点只会被访问一次。 总结 这段代码通过层序遍历来获取每层的最右侧节点从而实现了从右侧观察二叉树的效果。最终结果列表中按顺序保存了从上到下每一层的最右侧节点值符合题目要求。
http://www.w-s-a.com/news/439374/

相关文章:

  • lol网站建设seo 网站太小
  • 网站建设销售职责手机网站制作软件
  • 福州百度企业网站seo如何在电脑上登录wordpress
  • 开发区全力做好网站建设网络广告营销成功案例
  • 114网站建设高并发系统架构
  • php网站打开一片空白wordpress中文广告插件下载
  • 怎样建自己的网站免费的百度关键词排名点击
  • 医院网站建设的特点怎么查看网站百度快照
  • 网站 如何备案一般网站开发公司
  • 做网站的公司 贵阳郑州新像素ui设计培训收费
  • 温州网站建设公司电话给个免费的网址
  • 个人做电子商务网站备案软考高级
  • 淘宝客需要自己做网站吗四川遂宁做网站的公司
  • 编写网站策划书缘魁上海网站建设
  • 梧州外贸网站推广设计wordpress 上传 七牛
  • 增加网站备案千灯做网站
  • 深圳做网站的公php做简易网站
  • 徐州哪家做网站好商业空间设计效果图
  • 重庆建网站cqiezscom大学毕业做网站插画师好吗
  • 在门户网站做产品seo怎么样做网站管理员
  • 动画做视频在线观看网站字体安装+wordpress
  • vs2015网站开发做珠宝建个网站推广怎么样
  • 大桥外语官方网站星做宝贝佛山微信网站开发
  • 河南建设网站公司哪家好怎样做一家网站
  • 安阳市哪里做网站建设网站流量怎么赚钱
  • 网站开发与优化课程总结软件班级网站建设
  • py网站开发wordpress 公司网站 模板 下载
  • 长春城乡建设部网站首页英文网站推广服务
  • wordpress实训上海整站seo
  • 福建自己建设网站义乌市企推网络科技有限公司