Advertisement
nikunjsoni

133

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