题目描述:

方法1:层次遍历,得到每一层的数组后,再遍历数组填充指针

class Solution {
public:
    Node* connect(Node* root) {
        queue<Node*>que;
        if(!root) return root;
        que.push(root);
        while(!que.empty()){
            int length = que.size();
            vector<Node*>layer;
            for(int i=0;i<length;i++){
                Node* temp = que.front();
                que.pop();
                layer.push_back(temp);
                if(temp->left) que.push(temp->left);
                if(temp->right) que.push(temp->right);
            }
            for(int i=0;i<length-1;i++){
                layer[i]->next = layer[i+1];
            }
        }   
        return root;                  
    }
};