保存每一层最后一个节点。
访问到它时进行更新操作。
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector< vector<int> > ret;
if( !pRoot ) return ret;
queue< TreeNode* > que;
TreeNode* last = pRoot;
que.push( pRoot );
vector<int> level;
while(!que.empty()){
pRoot = que.front();
que.pop();
level.push_back( pRoot->val );
if( pRoot->left ) que.push( pRoot->left );
if( pRoot->right ) que.push( pRoot->right );
if(pRoot == last){
last = que.back();
ret.push_back(level);
level.clear();
}
}
return ret;
}
};
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。