[LeetCode]107. Binary Tree Level Order Traversal II--二叉树层序遍历2
来源:互联网 发布:战列舰炮击的威力知乎 编辑:程序博客网 时间:2024/06/05 11:14
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]
]
分析:在[LeetCode]107. Binary Tree Level Order Traversal 的基础上,reverse一下最后的结果即可。这里只贴了迭代版本的代码。
/** * 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>> result; if(root == NULL) return result; queue<TreeNode*> q; q.push(root); // root不为空,压入队列 int toBePrint = 1; // 记录本层还需要打印的节点个数 int nextLevel = 0; // 记录下一层的节点个数,每次入队列加1 vector<int> oneLayer; // 单层节点 while(!q.empty()){ TreeNode* pCur = q.front(); q.pop(); oneLayer.push_back(pCur->val); if(pCur->left){ // 左节点不为空,入队列 q.push(pCur->left); ++nextLevel; } if(pCur->right){ // 右结点不为空,入队列 q.push(pCur->right); ++nextLevel; } if(--toBePrint == 0){ // toBePrint 为0,则将oneLayer压入result toBePrint = nextLevel; nextLevel = 0; result.push_back(oneLayer); oneLayer.clear(); // oneLayer清空 } } reverse(result.begin(), result.end()); //反转一下 return result; }};
阅读全文
0 0
- [LeetCode]107. Binary Tree Level Order Traversal II--二叉树层序遍历2
- Leetcode 107. Binary Tree Level Order Traversal II 二叉树层次遍历2 解题报告
- LeetCode | Binary Tree Level Order Traversal II(二叉树层序遍历II)
- 【LeetCode】Binary Tree Level Order Traversal--(二叉树层序遍历)
- LeetCode | Binary Tree Level Order Traversal(二叉树层序遍历)
- leetcode-Binary Tree Level Order Traversal 二叉树层序遍历
- leetcode:Binary Tree Level Order Traversal 二叉树层序遍历
- 107.LeetCode Binary Tree Level Order Traversal II(easy)[二叉树层次遍历 广度搜索 队列]
- LeetCode 107. Binary Tree Level Order Traversal II(二叉树分层遍历)
- Leetcode#107. Binary Tree Level Order Traversal II (queue二叉树层次遍历)
- LeetCode-107-Binary Tree Level Order Traversal II(二叉树级序遍历<2>)
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- 【leetcode 层序遍历】Binary Tree Level Order Traversal II
- leetcode---binary-tree-level-order-traversal-ii---树层次遍历
- level 遍历107. Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II 二叉树按层遍历(反向输出)@LeetCode
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- LeetCode OJ 之 Binary Tree Level Order Traversal II (二叉树的层次遍历-二)
- angularJS实现手风琴效果
- 一次mysql死锁的排查过程
- Spring中事务的(特性,传播行为,隔离级别,不合理现象,丢失更新,案例..)
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- java--LinkedList源码分析
- [LeetCode]107. Binary Tree Level Order Traversal II--二叉树层序遍历2
- Android 84、gc、高德、百度、墨卡托地理坐标转换
- Android Tinker热修复
- HTTPS和HTTP区别和联系?
- 吴恩达机器学习笔记(1) Ocatave的使用
- CodeForces
- git学习笔记整理-3提交与移除
- 事务的四种隔离级别和七种传播机制
- [HDU6074] Phone Call