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

如何申请域名建立网站游戏排行榜页游

如何申请域名建立网站,游戏排行榜页游,前端是什么工作,下沙做网站的题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…

题目

199. 二叉树的右视图 - 力扣(LeetCode)

思路

右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是:

  • 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树
  • 记录每个节点的深度
  • 对于每一层,只保留第一个访问到的节点(因为先访问右侧,所以这个节点就是该层最右边的节点)

图解

    1/ \2   3/ \   \
4   5   6

DFS访问顺序(先右后左)是:1 -> 3 -> 6 -> 2 -> 5 -> 4

  • 访问节点1(深度0):result=[],depth=0,满足depth==result.size(),将1加入result=[1]
  • 访问节点3(深度1):result=[1],depth=1,满足depth==result.size(),将3加入result=[1,3]
  • 访问节点6(深度2):result=[1,3],depth=2,满足depth==result.size(),将6加入result=[1,3,6]
  • 访问节点2(深度1):result=[1,3,6],depth=1,不满足depth==result.size(),不操作
  • 访问节点5(深度2):result=[1,3,6],depth=2,不满足depth==result.size(),不操作
  • 访问节点4(深度2):result=[1,3,6],depth=2,不满足depth==result.size(),不操作

最终result=[1,3,6],正好是树的右视图。

详细过程

初始化:

  • 创建一个结果数组result来存储右视图的节点值
  • 从根节点开始,深度为0

DFS遍历:

  • 如果当前节点为空,直接返回
  • 检查当前深度是否等于结果数组的长度
  • 如果是,说明这是当前深度第一个被访问的节点,将其值加入结果数组
  • 如果不是,说明该深度已经有节点被加入结果,不做操作
  • 先递归访问右子树(深度+1),再递归访问左子树(深度+1)

先右后左的重要性:

  • 由于我们先访问右子树再访问左子树,对于每一层,最右边的节点会被最先访问
  • 结合"深度等于结果数组长度"的条件,确保只有每层最右边的节点被加入结果

读者的错误写法

class Solution {
public:vector<int> rightSideView(TreeNode* root) {vector<int> result;dfs(root,0,result);}void dfs(TreeNode* root,int depth, vector<int> result){if(!root){return;}if(depth == result.size()){dfs(root->right,depth,result);dfs(root->left,depth,result);}}
}; 

参数传递问题:

  • dfs 函数中的 vector<int> result 应该是引用类型 vector<int>& result,否则你对 result 的修改不会反映到 rightSideView 函数的 result 变量上

缺少添加节点值的语句:

  • 当 depth == result.size() 时,应该将当前节点值添加到 result 中,但代码中缺少这一步

递归调用错误:

  • 在 if(depth == result.size()) 内部调用 DFS 是不对的,应该在判断外部递增深度后调用
  • 递归调用时没有递增 depth

正确的写法

class Solution {
public:vector<int> rightSideView(TreeNode* root) {vector<int> result;dfs(root,0,result);return result;}void dfs(TreeNode* root,int depth, vector<int>& result){if(!root){return;}if(depth == result.size()){result.push_back(root->val);}dfs(root->right,depth+1,result);dfs(root->left,depth+1,result);}
};
http://www.dtcms.com/wzjs/608030.html

相关文章:

  • 建站收费标准建设部网站职责划定
  • 摄影网站模板wordpress 头像插件
  • 网站改版意义网站建设的经费预算报告
  • 上海网站制作网络推广方法精美动态ppt模板免费下载
  • 肇庆网站建设方案优化美食网页设计模板国内版
  • 如何借助网站打广告网站流量运营
  • 雏光 网络推广 网站建设网站建设安排总结
  • 门户网站开发的价格做网站要找什么软件
  • 订做网站和app建网站方法
  • 国外刺绣图案设计网站wordpress插件清单 很多很全
  • 广州网站建设如何做商城网页制作
  • 宁波建网站选哪家好一点如何注册平台
  • 网站专题页优化建设银行业务管理中心网站
  • 制作网站需要什么语言华为弹性云服务器创建wordpress
  • 食品网站建设优化案例国际军事新闻直播在线观看高清
  • 贡井网站建设常德网站优化哪家好
  • 深圳的网站建设公司那家好涿州市建设局网站网址是多少
  • 网站建设与维护 参考文献家居网站源码
  • 360网站推广官网wordpress 多模板下载
  • 北京语言大学网页设计作业青岛seo关键词
  • 青岛建站费用化妆品电子商务网站建设策划书
  • 小程序企业网站开发ps网页设计培训
  • 网站建设kaicz建设工程网上质检备案网站
  • 做花藤字网站wordpress为什么慢
  • 如何做公司自己的网站网站是自己做还是让别人仿
  • 东莞网站推广电话北京奕杰企业管理咨询有限公司
  • 选手机网站住房和城乡建设厅网站办事大厅
  • 图书网站开发的实践意义衡水做企业网站的公司
  • 网站与网站做外链好吗泉州手机网站建设公司
  • 爱情网站设计视频网站开发工具