zoukankan      html  css  js  c++  java
  • [leetcode]Clone Graph

    建立一个映射,old_graph -> clone_graph 节点的映射。

    如果不存在就新建,如果存在就把映射的节点push_back到neighbor里面

    /**
     * Definition for undirected graph.
     * struct UndirectedGraphNode {
     *     int label;
     *     vector<UndirectedGraphNode *> neighbors;
     *     UndirectedGraphNode(int x) : label(x) {};
     * };
     */
    class Solution {
    public:
        UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
            if( node == nullptr ) return nullptr;
            unordered_map<UndirectedGraphNode * , UndirectedGraphNode *> otn;
            otn[node] = new UndirectedGraphNode(node -> label);
            queue<UndirectedGraphNode *> que;
            que.push(node);
            
            while(!que.empty()){
                UndirectedGraphNode* node = que.front() ; que.pop();
                int size = node -> neighbors.size();
                
                for(int i = 0 ; i < size ; i ++){
                    if(otn.find(node -> neighbors[i]) == otn.end()){
                        UndirectedGraphNode * tmp = new UndirectedGraphNode(node -> neighbors[i] -> label);
                        otn[node] -> neighbors.push_back(tmp);
                        otn[node -> neighbors[i]] = tmp;
                        que.push(node -> neighbors[i]);
                    }else{
                        otn[node] -> neighbors.push_back(otn[node -> neighbors[i]]);
                    }
                }
            }
            return otn[node];
        }
    };
  • 相关阅读:
    4.启动虚拟机 设置CentOS7
    Mybatis-09-缓存
    Mybatis-08-动态SQL
    Mybatis-07-多对一和一对多处理
    Mybatis-06-Lombok
    Mybatis-05-使用注解开发
    Mybatis-04-分页
    Mybatis-03-日志
    Mybatis-02-CRUD及配置解析
    Mybatis-01-什么是Mybatis以及第一个Mybatis
  • 原文地址:https://www.cnblogs.com/x1957/p/3496954.html
Copyright © 2011-2022 走看看