leetcode 117.填充每个节点的下一个右侧节点指针 II

 


 

 

/*
// Definition for a Node.
class Node {
public:
    int val;
    Node* left;
    Node* right;
    Node* next;

    Node() : val(0), left(NULL), right(NULL), next(NULL) {}

    Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}

    Node(int _val, Node* _left, Node* _right, Node* _next)
        : val(_val), left(_left), right(_right), next(_next) {}
};
*/

class Solution {
public:
vector<Node*> a,b;
    Node* connect(Node* root) {
        if(root==NULL){
            return NULL;
        }
        a.push_back(root);
        int i;
        while(a.size()!=0){
            for(i=0;i<a.size();i++){
                if(a[i]->left!=NULL){
                    b.push_back(a[i]->left);
                }
                if(a[i]->right!=NULL){
                    b.push_back(a[i]->right);
                }
                if(i!=0){
                    a[i-1]->next=a[i];
                }
            }
            a.clear();
            a=b;
            b.clear();

        }
        return root;
    }
};

  

 

posted @ 2020-09-28 16:22  vdk  阅读(152)  评论(0)    收藏  举报