题目描述

思路

因为需要将每一层的数据对应放入一个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]相关推荐

  1. 二叉树的层次遍历 II - LeetCode

    给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次 ...

  2. 二叉树层次遍历c语言_每日一道 LeetCode (23):二叉树的层次遍历 II

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

  3. 【每日一算法】二叉树的层次遍历 II

    每日一算法-二叉树的层次遍历 II 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,n ...

  4. 二叉树层次遍历c语言_[LeetCode] 107. 二叉树的层次遍历 II

    题目链接 : https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述: 给定一个二叉树,返回其节点值自底 ...

  5. LeetCode 107. 二叉树的层次遍历 II(队列)

    1. 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 ...

  6. LeetCode(107)——二叉树的层次遍历 II(JavaScript)

    给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次 ...

  7. Leetcode 107. 二叉树的层次遍历 II 解题思路及C++实现

    解题思路: 使用队列实现二叉树的层序遍历,因为题目中要求每一层的val存储在一个vector中,所以在内循环中,还需要一个队列,用以存储更新每一层的节点. 在最后,需要将得到的res数组逆序. /** ...

  8. leetcode 107. 二叉树的层次遍历 II(维护两个队列,通过异或运算切换)

    题目 思路 一个比较啰嗦的解法 维护两个queue,当前队列节点的孩子,都放进另外一个队列里去. 树每切换一层,就切换一次队列,并且把新队列的值全部存起来. 整体上来看,是自顶向下遍历,最后翻转整个l ...

  9. 107. 二叉树的层次遍历 II

    给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 20/ ...

  10. leetcode 二叉树的层次遍历 II(Binary Tree Level Order Traversal II)

    目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例: 给定二叉树 [3,9,20,null ...

最新文章

  1. 超全的设计模式简介(45种)
  2. python培训班有用吗-比起自学Python,参加Python培训班有什么优势?
  3. Linux 进程通信fifo,Linux 进程通信之FIFO的实现
  4. 20191106每日一句
  5. 国内主要安全产品及厂商
  6. 杜邦线改成焊线_做杜邦线(假)教程
  7. word2016安装mathtype之后工具栏无显示
  8. dell服务器系统备份软件,使用 AlienRespawn 备份 Alienware 电脑的系统
  9. 通过动态NAT实现内网访问外网,通过静态NAT实现外网访问内网的WEB服务器
  10. 前端实现HTML转PDF下载的两种方式
  11. CodeBlocks调试功能快捷教程
  12. MAC双系统U盘安装方法
  13. 【图像处理】【图像去模糊】 总结
  14. 局域网访问提示无法访问检查拼写_win10访问局域网出现“请检查名称的拼写”如何解决...
  15. 如何为几乎所有电话添加无线充电
  16. 家庭理财及基金常识了解
  17. redo和undo 详解
  18. BLE 协议栈之 主机透传
  19. 希网动态域名 客户端(系统服务)
  20. Springboot整合poi +vue实现导出导入Excle表格数据展示图形

热门文章

  1. 人工智能名人堂第54期 | 深度学习鼻祖:Geoffrey Hinton
  2. 迷惑行为赏析:把 jpg 图片加密后卖了 247 万
  3. 在大厂干了 5 年产品后,如今她裸辞回家开店去了
  4. 谈谈我对Manacher算法的理解
  5. x64 gs寄存器的一点资料
  6. ubuntu下,py2,py3共存,/usr/bin/python: No module named virtualenvwrapper错误解决方法
  7. 保护物联网的数据隐私和在线安全的7种方式
  8. Line上半年扭亏为盈 用户及营收遇瓶颈
  9. SHELL脚本自动化部署MFS分布式文件系统
  10. 启动MongoDB shell客户端会什么会一闪而过