LeetCode: 133. Клон Graph фиг клон

试题
Учитывая ссылку узла в связном неориентированном графе, вернуть глубокую копию (клон) графа. Каждый узел в графе содержит Вэл (INT) и список (List [Node]) своих соседей.

Пример:

Входные данные :
{ « Ошибка синтаксического анализа Katex: Ожидаемая '}', получил 'EOF' в конце ввода: ... "соседей": [{» ID»:„2“,„соседи“: [{" Katex ошибка синтаксического анализа: Ожидаемая ' EOF», получил '}' в позиции 9: реф ":" 1 "}, {" ID»: „3“, „соседи“: [{ « Katex ошибка синтаксического анализа: Ожидаемая 'EOF', получил '}' в позиция 9: исх ":" 2 "}, {" ID»:„4“,„соседи“: [{« Katex ошибка синтаксического анализа: Ожидаемая 'EOF', получил '}' в позиции 9: реф ":" 3 "}, {" исх»:„1“}],„вал“: 4}],„вал“: 3}],„вал“: 2}, { "$ исх":„4“}], «вал»: 1}

Объяснение:
. Узел 1 APOS значение равно 1, и имеет два соседей:. Узел 2 и 4.
APOS значения узла-равно 2, и имеет два соседей:. Узел 1 и 3.
Узел значения 3 APOS IS 3, и имеют два соседей:.. Узел- 4. и
. значение узла APOS 4. Фиг.4, и имеет два соседей: узел 1 и 3..
Код
клонировал же время , чтобы гарантировать , что новый узел только один раз, но к счастью , значение Val-1 может быть использован в качестве опорных узлов.

/*
// Definition for a Node.
class Node {
    public int val;
    public List<Node> neighbors;

    public Node() {}

    public Node(int _val,List<Node> _neighbors) {
        val = _val;
        neighbors = _neighbors;
    }
};
*/

class Solution {
    public Node cloneGraph(Node node) {
        if(node == null) return node;
        
        Node copyNode = new Node(node.val, new ArrayList<Node>());
        Node[] nodes = new Node[100];
        nodes[node.val-1] = copyNode;
        dfs(copyNode, node, nodes);
        return copyNode;
    }
    
    public void dfs(Node copyNode, Node node, Node[] nodes) {
        for(Node n : node.neighbors){
            if(nodes[n.val-1] != null){
                copyNode.neighbors.add(nodes[n.val-1]);
                continue;
            }
            Node temp = new Node(n.val, new ArrayList<Node>());
            nodes[n.val-1] = temp;
            copyNode.neighbors.add(temp);
            dfs(temp, n, nodes);
        }
    }
}
Опубликовано 557 оригинальных статей · вона похвала 500 · Просмотров 1,53 млн +

рекомендация

отblog.csdn.net/qq_16234613/article/details/100174790
рекомендация