Iteractive algorithm with queue
This is a simple version of level-order traverse.
class Solution {
public:
Node* connect(Node* root) {
queue<Node*> Q;
Node* cur;
if(root) Q.push(root);
while(!Q.empty()) {
int sz = Q.size();
Node* pre = NULL;
for(int i=0; i<sz; i++) {
cur = Q.front(); Q.pop();
if(cur->left) Q.push(cur->left);
if(cur->right) Q.push(cur->right);
if(pre) pre->next = cur;
pre = cur;
}
}
return root;
}
};
The post LeetCode: Populating Next Right Pointers in Each Node appeared first on Coder's Cat.
Top comments (0)