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

如何申请域名建立网站网站制作需要多少钱品牌

如何申请域名建立网站,网站制作需要多少钱品牌,备案密码找回,wordpress个人网站备案管理题目 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/611360.html

相关文章:

  • 网站建设情况说明书企业的网站做一个要多少
  • 做资讯网站盈利公司备案证查询网站查询系统
  • 代理网络是什么深圳谷歌seo公司
  • 响应式网站是做列表深圳网站建设易佰讯
  • 可信赖的手机网站建设中山建设公司网站
  • 三只松鼠网站谁做的晚上必看正能量网站短视频
  • 免费视频网站素材nas 外网 wordpress
  • 建设银行网站怎么看不见余额怎么开通个人网站
  • 潮州市工程建设网站中山软件开发公司
  • 会员登录管理系统佛山网站优化怎么做
  • 平面设计在线网站外贸网站建设要注意什么
  • 企业网站asp怎么给网站的照片做超级链接
  • 珠海做网站报价网站设计需求分析报告
  • 做网站初级教程做款app多少钱
  • 免费个人网站建设哪里好局域网网站建设教程
  • 网站架构设计师面试技巧中信建设责任有限公司
  • 电子商务网站建设实训总结什么网站可以看女人唔易做
  • 免费培训网站网络工程实施方案
  • 南昌网站seo公司网站开发直播软件
  • 门户网站后台管理系统织梦如何临时关闭网站
  • 毕业设计做旅游网站包装设计师
  • 市场调研报告优化网站链接的方法
  • 自己办网站审批流程二级域名 电子商务网站推广方案
  • 广州十大高端网站建设公司长春seo搜索排名
  • 帝国cms 做网站地图陕西省建设执业资格注册管理中心网站
  • 网站手机端怎么制作教程网站建设流量是怎么回事
  • 建设银行网站的目的是什么意思塔城地区建设工程信息网站
  • 网站弹窗是怎么做的网上开店基本流程
  • 南昌做网站比较好的公司有哪些成都市医院网站建设
  • 怎样注册网站免费的制作公司内部网站