单独把这道题提出来,不是因为这道题本身难度有多高,更多的是这道题是一道非常好的检验对树的相关知识和BFS的简单运用的题。
class Solution {
public:
Node* connect(Node* root) {
if(root == NULL)
return root;
queue<Node*> q; q.push(root);
while(!q.empty()) {
int n = q.size();
for(int i = 1; i <= n; i++) {
Node* node = q.front(); q.pop();
if(i != n)
node -> next = q.front();
if(node -> left != NULL)
q.push(node -> left);
if(node -> right != NULL)
q.push(node -> right);
}
}
return root;
}
};