199. 二叉树的右视图
方法有很多
1,递归求二叉树的深度,然后从右边看是先遍历,也就是右序遍历一个颗二叉树,到最深度,然后到左边去遍历,从右边树+1的深度开始,加入数组。
2,层序遍历一颗二叉树,每层打印一个换行符,注意标记号每层最后一个节点。用一个队列实现,用一个哨兵来标记最后的每层最后的一个节点。
难度中等
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 <--- / \ 2 3 <--- \ \ 5 4 <---
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : vector< int > rightSideView(TreeNode* root) { vector< int >res; if (NULL == root) return res; queue<TreeNode*> que; que.push(root); auto last = root; auto nlast = root; while (!que.empty()){ auto q = que.front(); que.pop(); if (q->left){ que.push(q->left); nlast=que.back(); } if (q->right){ que.push(q->right); nlast=que.back(); } if (q == last ){ res.push_back(q->val); last=nlast; } } return res; } }; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : void solve(TreeNode*p, int high,vector< int >& num) { if (p == NULL) return ; if (high > num.size()) { num.push_back(p->val); } solve(p->right,high+1,num); solve(p->left,high+1,num); } vector< int > rightSideView(TreeNode* root) { vector< int > num; solve(root,1,num); return num; } }; 作者:Nagi_Deng 链接:https: //leetcode-cn.com/problems/binary-tree-right-side-view/solution/si-lu-qing-xi-jie-fa-jian-dan-csuan-fa-by-nagi_den/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具