deque常见函数:
push_back()
push_front()
front()
back()
pop()
popfront()
at()——访问deque元素
at(索引),使用元素的索引来访问deque,返回deque中索引处的值
利用双端队列进行锯齿形层序遍历:
public://利用双端队列://前取后放,后取前放vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> res;if(!root) return res;deque<TreeNode*> dq;dq.push_back(root);int flag=1;while(!dq.empty()){int size=dq.size();vector<int> path;//从左到右遍历if(flag==1){for(int i=0;i<size;i++){TreeNode* tmp=dq.front();dq.pop_front();path.push_back(tmp->val);if(tmp->left) dq.push_back(tmp->left);if(tmp->right) dq.push_back(tmp->right);}}//从右到左遍历if(flag==-1){for(int i=0;i<size;i++){TreeNode* tmp=dq.back();dq.pop_back();path.push_back(tmp->val);if(tmp->right) dq.push_front(tmp->right);if(tmp->left) dq.push_front(tmp->left);}}flag*=-1;res.push_back(path);}return res;}