Type: Medium, BFS

问题描述:

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

Example:

Input: [1,2,3,null,5,null,4]
Output: [1, 3, 4]
Explanation:1            <---/   \
2     3         <---\     \5     4       <---
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution(object):def rightSideView(self, root):""":type root: TreeNode:rtype: List[int]"""que = [[root, 0]]record = {}layer = 0while que != []:[cur, layer] = que.pop(0)if cur:if layer not in record:record[layer] = [cur.val]else:record[layer] += [cur.val]que += [[cur.left,layer + 1], [cur.right, layer + 1]]# while que != []:#     [cur, layer] = que.pop(0)#     if cur != None:#         if layer not in record:#             record[layer] = [cur.val]#         else:#             record[layer] += [cur.val]#         que += [[root.left, layer + 1], [root.right, layer + 1]] # 这里写成了root.left,应当是cur# 将字典中数据提取到数组res = [None] * len(record)for key, val in record.items():res[key] = val[-1]return res

仍然是标准的BFS的写法,用record字典来记录层序,然后用数组拿出最右边的数据。

这个写法有点浪费空间其实,可以改进,在遍历时拿出直接得到结果,现在先练习这个定式。

Leetcode 199相关推荐

  1. leetcode 199. Binary Tree Right Side View | 199. 二叉树的右视图(Java)

    题目 https://leetcode-cn.com/problems/binary-tree-right-side-view/ 题解 本题思路来源于二叉树的层序遍历. 层序遍历类似问题:leetco ...

  2. LeetCode 199. 二叉树的右视图(DFS 按层queue)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 queue按层从右边遍历 1. 题目 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例:输入: ...

  3. Leetcode 199.二叉树的右视图

    Time: 20190903 Type: Medium 题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5 ...

  4. Leetcode 199. 二叉树的右视图 解题思路及C++实现

    解题思路: 使用层序遍历,得到每一层的最后边的节点,然后push_back到结果容器中. 通过使用q.size()函数,只需要一个队列即可实现层序遍历. /*** Definition for a b ...

  5. Leetcode 199.二叉树的右视图 (每日一题 20210628 同类型题)

    给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释:1 <--- ...

  6. LeetCode 199. 二叉树的右视图(DFS)(特殊的递归)

    题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 思路 详见链接 代码 class TreeNode:def __init__(self,x):se ...

  7. LeetCode.199 二叉树的左视图

    题目描述: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 分析: 题目说人话就是从最顶层开始,获得每一层最右边的结点,插入到vector中,返回该 ...

  8. 开启LeetCode之路

    终于有时间开始每天坚持做LeetCode题,博主现在以在CSDN上撰写解题思路为自我监督方式,坚持每天将当天的题目的解题思路记录下来. LeetCode刷题路线:博主将计划按tag顺序做题,先以简单和 ...

  9. leetcode 662. Maximum Width of Binary Tree | 662. 二叉树最大宽度(BFS)

    题目 https://leetcode.com/problems/maximum-width-of-binary-tree/ 题解 本题思路来源于二叉树的层序遍历. 层序遍历类似问题:leetcode ...

最新文章

  1. 【PDF下载】给专业选手的 Python 笔记
  2. 举例分析Linux动态库和静态库
  3. linux下eclipse的使用教程,linux下Eclipse的使用方法总结.doc
  4. JSON.stringify() 格式化 输出log
  5. 中柏ezpadE7装linux,中柏EZbook 2笔记本U盘安装win7系统的操作教程
  6. 安卓逆向入门教程(一)
  7. 信息学奥赛一本通 1114:白细胞计数 | OpenJudge NOI 1.9 08
  8. 业界分享 | 百度图神经网络实践
  9. leetcode 374. Guess Number Higher or Lower 、375. Guess Number Higher or Lower II
  10. 剖析云计算和大数据落地后x86服务器的业务痛点
  11. 中国天气网城市代码python字典的生成方法分享(1)
  12. office 论文 页码_「论文页码设置」Word论文页码怎么设置连续?老师傅教你一份设置技巧(很多还不知道) - seo实验室...
  13. Bugku CTF Web 滑稽 计算器 GET POST 矛盾 alert 你必须让他停下
  14. python心形曲线和马鞍面_心形线与马鞍面
  15. PS自动批量处理文件夹下所有文件
  16. 南安普顿大学计算机排名2019,南安普顿大学2019THE世界大学排名最新排名第118
  17. 银行案例分析:识别个人贷款客户画像,实现精准营销与风险防范
  18. pytest和allure生成测试报告
  19. 谷歌 招聘_为什么我不与Google招聘人员交谈
  20. jdk11 下载与安装(非常详细,一步不落!!!)

热门文章

  1. 虚拟服务器的密码忘记了,忘记虚拟密码
  2. java 有意思面试题_一些JAVA中有趣的面试题
  3. python编程狮app_Python编程狮官方app下载_Python编程狮安卓app下载 v1.0.8 - 创意手游...
  4. 算法竞赛进阶指南 pdf_限时!字节跳动大牛2个月标星达70k的算法笔记,免费开源...
  5. 支持mysql8的客户端_mysql8 参考手册--mysql客户端帮助
  6. jmeter安装 java,Windows下安装jmeter图文教程
  7. access根据所属院系修改学号_2012年计算机等考二级Access模拟试题四
  8. 11选5下期算法_五指大山|新手入门,快速玩转11选5
  9. OpenCV-Python实战(17)——人脸识别详解
  10. java数组删除数组元素_如何在Java中删除数组元素