knakul853

Untitled

Jun 7th, 2020
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. /*
  2. // Definition for a Node.
  3. class Node {
  4. public:
  5.     int val;
  6.     vector<Node*> neighbors;
  7.    
  8.     Node() {
  9.         val = 0;
  10.         neighbors = vector<Node*>();
  11.     }
  12.    
  13.     Node(int _val) {
  14.         val = _val;
  15.         neighbors = vector<Node*>();
  16.     }
  17.    
  18.     Node(int _val, vector<Node*> _neighbors) {
  19.         val = _val;
  20.         neighbors = _neighbors;
  21.     }
  22. };
  23. */
  24.  
  25. class Solution {
  26. public:
  27.     Node* cloneGraph(Node* node)
  28.     {
  29.        if ( !node )
  30.            return NULL;
  31.        
  32.         if(mp.find(node) == mp.end())
  33.         {
  34.          
  35.             mp[node] = new Node(node->val, {});
  36.            
  37.             for(Node* neighbor : node->neighbors)
  38.             {
  39.                 mp[node]->neighbors.push_back(cloneGraph( neighbor));
  40.             }
  41.         }
  42.        
  43.         return mp[ node ];
  44.     }
  45.    
  46.     private:
  47.     unordered_map<Node*, Node*> mp;
  48.    
  49. };
Add Comment
Please, Sign In to add comment