二叉树的右视图 python_【leetcode刷题】T128-二叉树的右视图
二叉树类型第18篇解题报告
leetcode第199题:二叉树的右视图
https://leetcode-cn.com/problems/binary-tree-right-side-view/
【题目】
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:
输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:
1
/ \
2 3
\ \
5 4
【思路】
使用层次遍历,只保留每一层最后一个元素。
【代码】
python版本# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def rightSideView(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
res = [0]
p = [root]
q = []
while len(p) != 0 or len(q) != 0:
if len(p) == 0:
p = q
q = []
res.append(0)
tmp = p.pop(0)
res[-1] = tmp.val
if tmp.left:
q.append(tmp.left)
if tmp.right:
q.append(tmp.right)
return res
C++版本/**
* 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 rightSideView(TreeNode* root) {
vector res;
if(!root)
return res;
res.push_back(0);
queue p;
queue q;
p.push(root);
while(p.size() != 0 || q.size() != 0){
if(p.size() == 0){
while(q.size() != 0){
p.push(q.front());
q.pop();
}
res.push_back(0);
}
TreeNode* tmp = p.front();
p.pop();
res[res.size()-1] = tmp->val;
if(tmp->left)
q.push(tmp->left);
if(tmp->right)
q.push(tmp->right);
}
return res;
}
};
二叉树的右视图 python_【leetcode刷题】T128-二叉树的右视图相关推荐
- LeetCode刷题笔记 二叉树 二叉搜索树的操作
669 修剪二叉搜索树 给定一个二叉查找树和两个整数 L 和 R,且 L < R,试修剪此二叉查找树,使得修剪后所有节点的值都在 [L, R] 的范围内. 输入是一个二叉查找树和两个整数 ...
- Leetcode刷题之二叉树遍历——迭代(显示栈)【CSDN博客】
总结了一下二叉树前两种遍历方法,之后更新第三种 前序遍历代码 class Solution {public List<Integer> preorderTraversal(TreeNode ...
- Leetcode刷题236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 x 是 p.q 的祖先且 ...
- leetcode刷题:二叉树的中序遍历
题目: 分析: 代码如下: class Solution { public:vector<int> inorderTraversal(TreeNode* root) {stack<T ...
- C#LeetCode刷题-树
树篇 # 题名 刷题 通过率 难度 94 二叉树的中序遍历 61.6% 中等 95 不同的二叉搜索树 II 43.4% 中等 96 不同的二叉搜索树 51.6% 中等 98 验证二叉搜索树 22.2% ...
- LeetCode刷题实战623:在二叉树中增加一行
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode 刷题之旅(2020.05.22)——105. 从前序与中序遍历序列构造二叉树(中)
LeetCode 刷题之旅(2020.05.22)--105. 从前序与中序遍历序列构造二叉树(中) 题目: 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如, ...
- LeetCode刷题实战314:二叉树的竖直遍历
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- 一个算法笨蛋的12月leetCode刷题日记
类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...
- LeetCode 刷题之路(python版)
摘自:https://blog.csdn.net/qq_32384313/article/details/90745354 LeetCode 刷题之路(python版) 小坏wz 2019-06-02 ...
最新文章
- 那些方式可以合并php数组,合并数组(PHP)
- 学习python第四天内容回顾
- 2008_10_28_星期二
- 数据库开发——MySQL——单表查询
- way.js - 轻量级、持久化的双向绑定JS库
- jsDate对象和倒计时图片案例
- 微软私有云分享(R2)22 计算机配置文件与基础设置
- C# Azure 存储-Blob
- 京东二面:MySQL 主从延迟、读写分离 7 种解决方案!
- 保险营销观察报告:保险直播“带货”的现状、风险分析与未来研判
- MMOCR: OpenMMLab 全流程的文字检测识别理解工具箱
- Thrift协议的服务模型
- 异常:java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext
- AC日记——Roma and Poker codeforces 803e
- Eclipse\myeclipse加载项目building workspace过久
- 【手写字母识别】基于matlab GUI BP网络手写体大写字母识别【含Matlab源码 183期】
- Materialise Mimics Innovation Suite Research 19.0 X64安装包原版
- 服务器443端口响应代码,使用443端口远程服务器
- Uc页面加载完毕后页面字体变大
- [生存志] 第71节 阖闾五战入郢