Leetcode 199
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相关推荐
- leetcode 199. Binary Tree Right Side View | 199. 二叉树的右视图(Java)
题目 https://leetcode-cn.com/problems/binary-tree-right-side-view/ 题解 本题思路来源于二叉树的层序遍历. 层序遍历类似问题:leetco ...
- LeetCode 199. 二叉树的右视图(DFS 按层queue)
文章目录 1. 题目 2. 解题 2.1 DFS 2.2 queue按层从右边遍历 1. 题目 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例:输入: ...
- Leetcode 199.二叉树的右视图
Time: 20190903 Type: Medium 题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5 ...
- Leetcode 199. 二叉树的右视图 解题思路及C++实现
解题思路: 使用层序遍历,得到每一层的最后边的节点,然后push_back到结果容器中. 通过使用q.size()函数,只需要一个队列即可实现层序遍历. /*** Definition for a b ...
- Leetcode 199.二叉树的右视图 (每日一题 20210628 同类型题)
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释:1 <--- ...
- LeetCode 199. 二叉树的右视图(DFS)(特殊的递归)
题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 思路 详见链接 代码 class TreeNode:def __init__(self,x):se ...
- LeetCode.199 二叉树的左视图
题目描述: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 分析: 题目说人话就是从最顶层开始,获得每一层最右边的结点,插入到vector中,返回该 ...
- 开启LeetCode之路
终于有时间开始每天坚持做LeetCode题,博主现在以在CSDN上撰写解题思路为自我监督方式,坚持每天将当天的题目的解题思路记录下来. LeetCode刷题路线:博主将计划按tag顺序做题,先以简单和 ...
- leetcode 662. Maximum Width of Binary Tree | 662. 二叉树最大宽度(BFS)
题目 https://leetcode.com/problems/maximum-width-of-binary-tree/ 题解 本题思路来源于二叉树的层序遍历. 层序遍历类似问题:leetcode ...
最新文章
- 【PDF下载】给专业选手的 Python 笔记
- 举例分析Linux动态库和静态库
- linux下eclipse的使用教程,linux下Eclipse的使用方法总结.doc
- JSON.stringify() 格式化 输出log
- 中柏ezpadE7装linux,中柏EZbook 2笔记本U盘安装win7系统的操作教程
- 安卓逆向入门教程(一)
- 信息学奥赛一本通 1114:白细胞计数 | OpenJudge NOI 1.9 08
- 业界分享 | 百度图神经网络实践
- leetcode 374. Guess Number Higher or Lower 、375. Guess Number Higher or Lower II
- 剖析云计算和大数据落地后x86服务器的业务痛点
- 中国天气网城市代码python字典的生成方法分享(1)
- office 论文 页码_「论文页码设置」Word论文页码怎么设置连续?老师傅教你一份设置技巧(很多还不知道) - seo实验室...
- Bugku CTF Web 滑稽 计算器 GET POST 矛盾 alert 你必须让他停下
- python心形曲线和马鞍面_心形线与马鞍面
- PS自动批量处理文件夹下所有文件
- 南安普顿大学计算机排名2019,南安普顿大学2019THE世界大学排名最新排名第118
- 银行案例分析:识别个人贷款客户画像,实现精准营销与风险防范
- pytest和allure生成测试报告
- 谷歌 招聘_为什么我不与Google招聘人员交谈
- jdk11 下载与安装(非常详细,一步不落!!!)
热门文章
- 虚拟服务器的密码忘记了,忘记虚拟密码
- java 有意思面试题_一些JAVA中有趣的面试题
- python编程狮app_Python编程狮官方app下载_Python编程狮安卓app下载 v1.0.8 - 创意手游...
- 算法竞赛进阶指南 pdf_限时!字节跳动大牛2个月标星达70k的算法笔记,免费开源...
- 支持mysql8的客户端_mysql8 参考手册--mysql客户端帮助
- jmeter安装 java,Windows下安装jmeter图文教程
- access根据所属院系修改学号_2012年计算机等考二级Access模拟试题四
- 11选5下期算法_五指大山|新手入门,快速玩转11选5
- OpenCV-Python实战(17)——人脸识别详解
- java数组删除数组元素_如何在Java中删除数组元素