[LeetCode] 133. Clone Graph

来源:互联网 发布:阿里云 短信 编辑:程序博客网 时间:2024/06/07 00:35

Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.

class Solution {public:    UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {        return node == nullptr ? nullptr : DFS(node);    }private:    unordered_map<int, UndirectedGraphNode *> ToCopied;    UndirectedGraphNode *DFS(UndirectedGraphNode *node) {        UndirectedGraphNode *copiednode = new UndirectedGraphNode(node->label);        ToCopied[node->label] = copiednode;        for (auto neighbor : node->neighbors) {            if (ToCopied.find(neighbor->label) == ToCopied.end()) {                copiednode->neighbors.push_back(DFS(neighbor));            } else {                copiednode->neighbors.push_back(ToCopied[neighbor->label]);            }        }        return copiednode;    }};

这里写图片描述这里写图片描述

原创粉丝点击