原题链接:https://leetcode.com/problems/populating-next-right-pointers-in-each-node/
class Solution {
public:
void connect(TreeLinkNode *root) {
queue<TreeLinkNode* > que1,que2;
TreeLinkNode *pre;
pre = NULL;
if(root)
{
que1.push(root);
while(!que1.empty() || !que2.empty())
{
while(!que1.empty())
{
root = que1.front();
que1.pop();
if(pre)
pre->next = root;
if(root->left)
que2.push(root->left);
if(root->right)
que2.push(root->right);
pre = root;
}
root->next = NULL;
pre = NULL;
while(!que2.empty())
{
root = que2.front();
que2.pop();
if(pre)
pre->next = root;
if(root->left)
que1.push(root->left);
if(root->right)
que1.push(root->right);
pre = root;
}
root->next = NULL;
pre = NULL;//注意不能遗漏
}
}
}
};