news 2026/7/4 17:17:58

LeetCode 分类刷题:199. 二叉树的右视图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 分类刷题:199. 二叉树的右视图

题目

给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

解析

// 怎么递归找到每一层的最右节点?

// 从根节点开始,先遍历右子树的节点,再遍历左子树的节点

// 根节点 深度为0 右视图节点数为0 加入右视图

// 第一层最右节点 深度为1 右视图节点数为1 加入右视图

// ……

// 每一层的最右节点满足条件:所在层的深度 = 右视图节点数

答案

var rightSideView = function(root) { const ans = []; function dfs(node, depth) { if (node === null) { return; } if (depth === ans.length) { // 这个深度首次遇到 ans.push(node.val); } dfs(node.right, depth + 1); // 先递归右子树,保证首次遇到的一定是最右边的节点 dfs(node.left, depth + 1); } dfs(root, 0); return ans; }; // 作者:灵茶山艾府 // 链接:https://leetcode.cn/problems/binary-tree-right-side-view/solutions/2015061/ru-he-ling-huo-yun-yong-di-gui-lai-kan-s-r1nc/ // 来源:力扣(LeetCode) // 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

复杂度分析

时间复杂度:O(n),其中 n 是二叉树的节点个数。
空间复杂度:O(h),其中 h 是二叉树的高度。递归需要 O(h) 的栈空间。最坏情况下,二叉树退化成一条链,递归需要 O(n) 的栈空间。

作者:灵茶山艾府
链接:https://leetcode.cn/problems/binary-tree-right-side-view/solutions/2015061/ru-he-ling-huo-yun-yong-di-gui-lai-kan-s-r1nc/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 9:04:32

找靠谱OpenGL编程指南pdf的途径和使用优缺点

对于许多图形编程初学者和开发者而言,寻找一份权威、系统且易于获取的《OpenGL编程指南》PDF文档,往往是开启学习之旅的第一步。这本书被誉为“OpenGL红宝书”,其系统性讲解和权威性是业界公认的。获取和使用这份PDF,既关乎学习的…

作者头像 李华
网站建设 2026/7/3 16:53:37

MQTT调试利器:从入门到精通的完整使用手册

MQTT调试利器:从入门到精通的完整使用手册 【免费下载链接】MQTT-Explorer An all-round MQTT client that provides a structured topic overview 项目地址: https://gitcode.com/gh_mirrors/mq/MQTT-Explorer 你是否在物联网项目开发中遇到过这样的困扰&am…

作者头像 李华
网站建设 2026/6/26 8:15:56

C++中如何安全地将C风格字符串转化为无符号整数

在C编程中,将C风格字符串(cstring)转换为无符号整数(uint)是一项基础但容易出错的底层操作。它直接关系到数据处理的正确性和程序的安全性,错误往往源于对输入数据边界和格式的忽视。理解其原理和陷阱&…

作者头像 李华
网站建设 2026/7/1 3:22:05

可解释人工智能在软件测试中的实践与展望、

可解释AI与软件测试的融合价值 随着AI技术深度渗透测试领域,从自动化测试脚本生成到智能缺陷预测,人工智能正重塑传统测试范式。然而,传统黑盒AI模型(如深度神经网络)的决策过程不透明,导致测试人员面临三…

作者头像 李华
网站建设 2026/7/4 15:43:51

跨越工具鸿沟:测试数据流动的挑战与机遇

理解测试数据流动的核心价值 在当今快速迭代的软件开发环境中,测试数据是确保产品质量的基石。然而,随着工具链的多样化,测试数据在不同平台(如JIRA、Selenium、Postman或自定义测试框架)之间的流动常常面临障碍。这种…

作者头像 李华