Q: 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,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7] [9,20], [3], ]
按层(从上往下)输出二叉树的结点值。
A:vector insert方法的使用。每次访问到新的一层节点时,在result前部插入新的vector<int>.
struct QueueNode{ TreeNode *tree; int level; QueueNode(TreeNode *t,int l):tree(t),level(l){} }; class Solution { public: vector<vector<int> > levelOrderBottom(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<int>> result; if(!root) return result; queue<QueueNode> q; int levelcount = -1; q.push(QueueNode(root,0)); while(!q.empty()) { QueueNode qNode = q.front(); q.pop(); if(qNode.level!=levelcount) { vector<int> set; result.insert(result.begin(),set); levelcount++; } result[0].push_back(qNode.tree->val); if(qNode.tree->left) q.push(QueueNode(qNode.tree->left,qNode.level+1)); if(qNode.tree->right) q.push(QueueNode(qNode.tree->right,qNode.level+1)); } return result; } };
原文链接: https://www.cnblogs.com/summer-zhou/archive/2013/06/04/3116624.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/91125
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!