LeetCode 107. Binary Tree Level Order Traversal II
来源:互联网 发布:手机申请淘宝账号 编辑:程序博客网 时间:2024/06/14 13:32
107. Binary Tree Level Order Traversal II
一、问题描述
Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).
二、输入输出
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3]]
三、解题思路
二叉树-层次遍历
- 非常典型的二叉树的层次遍历。其实就是
广度优先搜索 + queue
- 和广度优先搜索稍微不同的是,在层次遍历中需要记录下三个参数:当前层次的总个数,当前层次遍历的个数,下一层的节点个数。最初的时候,只把root入队即可。
- 题目要求是从叶节点到根节点,所以ret是在begin的位置进行插入的。
/** * 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>> ret; if(root == nullptr)return ret; queue<TreeNode *> q; q.push(root); int currLevelCount = 1; int nextLevelCount = 0; int count = 0; vector<int> each; while(!q.empty()) { TreeNode* head = q.front();q.pop(); count++; each.emplace_back(head->val);//加入到数组中,层次遍历中的每一行 if(head->left){ nextLevelCount++; q.push(head->left); } if(head->right){ nextLevelCount++; q.push(head->right); } if(count == currLevelCount){//当前这一层遍历完了,准备下一层的遍历 count = 0; currLevelCount = nextLevelCount; nextLevelCount = 0; ret.insert(ret.begin(),each);//题目要求从叶到根,所以插入到ret begin的位置 each.clear(); } } return ret; }};
阅读全文
0 0
- [LeetCode]102. Binary Tree Level Order Traversal&107. Binary Tree Level Order Traversal II
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- [Leetcode]Binary Tree Level Order Traversal II
- [leetcode]Binary Tree Level Order Traversal II
- LeetCode-Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- LeetCode | Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- 【LeetCode】Binary Tree Level Order Traversal II
- JVM调优浅谈
- 欢迎使用CSDN-markdown编辑器
- Mac 使用ab性能测试工具
- LeetCode 104. Maximum Depth of Binary Tree
- linux下配置两个tomcat实例
- LeetCode 107. Binary Tree Level Order Traversal II
- 脉冲云之实战Nodejs计时器的玩法
- Python 备份文件
- 时间间隔分钟数计算
- 安卓再按一次退出程序(Activity)
- MySQL学习笔记
- Spring boot jdbc 自定义SQL查询
- UE4 X HTC Vive游戏开发笔记(二)
- 安装pods时候遇到的一个小坑。