C++ solution using deque


#1

void Solution::connect(TreeLinkNode* A) {
deque<TreeLinkNode *> q1;
q1.push_back(A);
while(!q1.empty())
{
deque<TreeLinkNode *> q2;
while(!q1.empty())
{
TreeLinkNode *temp=q1.front();
q1.pop_front();
if(q1.empty()) temp->next=NULL;
else
temp->next=q1.front();
if(temp->left) q2.push_back(temp->left);
if(temp->right) q2.push_back(temp->right);
}
q1=q2;
}
}