二叉树的层次遍历 II[LeetCode-107]
题目描述
思路
因为需要将每一层的数据对应放入一个vector中,因此在遍历某一层元素时,同时将对应该层元素的所有子节点放入容器中,
又因为每一层的元素是从左到右依次放入vector,直接使用queue来存放各个节点即可,先进先出刚好满足这个特性。
因为输出的时候,顶层的元素放最后,因此不要用vector的push_back,最好用vector的insert(vector.begin(), element)
实现如下
/*** 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<vector<int>> levelOrderBottom(TreeNode* root) {vector<vector<int>> res;if (!root) {return res;}queue<TreeNode*> q;q.push(root);while(!q.empty()) {vector<int> tmp;int size_level = q.size(); // 这里记录本层的元素数,下面for循环不会遍历下一层元素for (int i = 0; i < size_level; i++) {TreeNode* node = q.front();tmp.push_back(node->val);if (node->left) q.push(node->left); // 顺便把子节点也放入队列,等下一个循环再继续处理if (node->right) q.push(node->right);q.pop();}res.insert(res.begin(), tmp); // 这样便可实现下层的节点可以在输出的时候放在最前面}return res;}
};
复制代码
二叉树的层次遍历 II[LeetCode-107]相关推荐
- 二叉树的层次遍历 II - LeetCode
给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次 ...
- 二叉树层次遍历c语言_每日一道 LeetCode (23):二叉树的层次遍历 II
❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...
- 【每日一算法】二叉树的层次遍历 II
每日一算法-二叉树的层次遍历 II 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,n ...
- 二叉树层次遍历c语言_[LeetCode] 107. 二叉树的层次遍历 II
题目链接 : https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述: 给定一个二叉树,返回其节点值自底 ...
- LeetCode 107. 二叉树的层次遍历 II(队列)
1. 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 ...
- LeetCode(107)——二叉树的层次遍历 II(JavaScript)
给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次 ...
- Leetcode 107. 二叉树的层次遍历 II 解题思路及C++实现
解题思路: 使用队列实现二叉树的层序遍历,因为题目中要求每一层的val存储在一个vector中,所以在内循环中,还需要一个队列,用以存储更新每一层的节点. 在最后,需要将得到的res数组逆序. /** ...
- leetcode 107. 二叉树的层次遍历 II(维护两个队列,通过异或运算切换)
题目 思路 一个比较啰嗦的解法 维护两个queue,当前队列节点的孩子,都放进另外一个队列里去. 树每切换一层,就切换一次队列,并且把新队列的值全部存起来. 整体上来看,是自顶向下遍历,最后翻转整个l ...
- 107. 二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 20/ ...
- leetcode 二叉树的层次遍历 II(Binary Tree Level Order Traversal II)
目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例: 给定二叉树 [3,9,20,null ...
最新文章
- 超全的设计模式简介(45种)
- python培训班有用吗-比起自学Python,参加Python培训班有什么优势?
- Linux 进程通信fifo,Linux 进程通信之FIFO的实现
- 20191106每日一句
- 国内主要安全产品及厂商
- 杜邦线改成焊线_做杜邦线(假)教程
- word2016安装mathtype之后工具栏无显示
- dell服务器系统备份软件,使用 AlienRespawn 备份 Alienware 电脑的系统
- 通过动态NAT实现内网访问外网,通过静态NAT实现外网访问内网的WEB服务器
- 前端实现HTML转PDF下载的两种方式
- CodeBlocks调试功能快捷教程
- MAC双系统U盘安装方法
- 【图像处理】【图像去模糊】 总结
- 局域网访问提示无法访问检查拼写_win10访问局域网出现“请检查名称的拼写”如何解决...
- 如何为几乎所有电话添加无线充电
- 家庭理财及基金常识了解
- redo和undo 详解
- BLE 协议栈之 主机透传
- 希网动态域名 客户端(系统服务)
- Springboot整合poi +vue实现导出导入Excle表格数据展示图形
热门文章
- 人工智能名人堂第54期 | 深度学习鼻祖:Geoffrey Hinton
- 迷惑行为赏析:把 jpg 图片加密后卖了 247 万
- 在大厂干了 5 年产品后,如今她裸辞回家开店去了
- 谈谈我对Manacher算法的理解
- x64 gs寄存器的一点资料
- ubuntu下,py2,py3共存,/usr/bin/python: No module named virtualenvwrapper错误解决方法
- 保护物联网的数据隐私和在线安全的7种方式
- Line上半年扭亏为盈 用户及营收遇瓶颈
- SHELL脚本自动化部署MFS分布式文件系统
- 启动MongoDB shell客户端会什么会一闪而过