题解 | #判断一个链表是否为回文结构#
按之字形顺序打印二叉树
http://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
//增加一个栈用来存储需要反向的层 class Solution { public: vector<vector > Print(TreeNode* pRoot) {
queue<TreeNode*>q;
stack<TreeNode*>stc;
q.push(pRoot);
vector<vector<int>>result;
if(pRoot == nullptr){
return result;
}
bool flag = false;
while(!q.empty()){
int floor_size = q.size();
flag = !flag;
vector<int>mid;
for(int i = 0; i < floor_size; ++i){
TreeNode *temp = q.front();
q.pop();
if(flag){//不用反向
mid.push_back(temp->val);
}else{
stc.push(temp);
}
if(temp->left){
q.push(temp->left);
}
if(temp->right){
q.push(temp->right);
}
}
while(!stc.empty()){
TreeNode* t = stc.top();
stc.pop();
mid.push_back(t->val);
}
result.push_back(mid);
}
return result;
}
};