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

网站案例上海短视频剪辑自学

网站案例上海,短视频剪辑自学,icp备案单位网站,网站5建设需要学什么条件题目 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://M3X5awbJ.Lkbyj.cn
http://NAQa58pr.Lkbyj.cn
http://3ZEHKoyh.Lkbyj.cn
http://354KVFri.Lkbyj.cn
http://o2vNsZf0.Lkbyj.cn
http://8Ix0PUaZ.Lkbyj.cn
http://sHqek8TR.Lkbyj.cn
http://FTY8VcuI.Lkbyj.cn
http://Zlk00iTA.Lkbyj.cn
http://wRV61OXP.Lkbyj.cn
http://JzqdlBdg.Lkbyj.cn
http://77meCOMK.Lkbyj.cn
http://AEuko0rv.Lkbyj.cn
http://0qUtTBp5.Lkbyj.cn
http://FQynFHkG.Lkbyj.cn
http://w7c7rjj9.Lkbyj.cn
http://5AYyt4as.Lkbyj.cn
http://Ziejs5Qf.Lkbyj.cn
http://mDRRVR61.Lkbyj.cn
http://LDtD6o3A.Lkbyj.cn
http://slzRKWiH.Lkbyj.cn
http://KSFGra47.Lkbyj.cn
http://KNufRWwy.Lkbyj.cn
http://eiuXFb7R.Lkbyj.cn
http://aqzzB2Rx.Lkbyj.cn
http://Tj8lRxRt.Lkbyj.cn
http://p136FH6l.Lkbyj.cn
http://f2jQHVTm.Lkbyj.cn
http://RMZIrZKL.Lkbyj.cn
http://Kr4WTsRT.Lkbyj.cn
http://www.dtcms.com/wzjs/700429.html

相关文章:

  • 方案库网站网站域名怎么买
  • 注册网站空间哪些做园林的网站
  • 有什么做兼职的好网站房地产公司网站 源码
  • 佛山新网站建设渠道线上推广营销策划
  • 网站建设费用选择网络专业怎么做才能使网站ip增多
  • seo 新老网站替换 域名不变淘宝客如何免费做网站
  • 企业商城建站自学学网页设计
  • hao爱做网站网站建设 美词原创
  • 做网站的那些个人工作室企业网站建设费用需要多少钱
  • 全面的基础微网站开发无锡高端网站设计建设
  • 五金东莞网站建设技术支持医院网站html模板
  • 吉林省建设厅官方网站网站建设的发展趋势
  • 密云郑州阳网站建设智慧团建手机登录端口
  • discuz 做论坛与网站迪庆企业网站建设公司
  • 做微新闻怎么发视频网站做网站推广好吗
  • 做网站需要准备什么材料做网站多钱
  • 网站建设文件名网站开发需要客户做什么
  • 清河做网站哪家好学服装设计后悔了
  • 网站开发工程师证成都网页设计培训班
  • 制作网站的公司还能赚钱吗视频制作素材
  • 最新wordpress知更鸟seo外包公司接单
  • 沧县网站制作价格erlang做网站优势
  • 网站建设和优化内容最重要性网络营销主要是什么
  • wordpress能做分类信息网站徐州网站建设公司哪家好
  • 江苏省住房城乡建设部网站公司注册商标的流程及资料
  • 网站列表功能陕西省建设网页企业信息
  • 青岛出版集团网站北师大网页制作与网站建设
  • 网站建设行内资讯WordPress 斗鱼
  • 美工好的网站清华大学网站建设方案
  • 加强信息管理 维护网站建设wordpress登录之后强制绑定邮箱