class Solution {
public:
Node* connect(Node* root) {
int size = 1,i = 0;
Node* p = root;
queue<Node*>s;
if (p)s.push(p);
while (!s.empty()) {
p = s.front();
s.pop();
i++;
if (p->left)s.push(p->left);
if (p->right)s.push(p->right);
if (i < size) {
p->next = s.front();
}
else if (i == size)
p->next = NULL, i = 0, size = s.size();
}
return root;
}
};
10-15
164
09-11
278