zoukankan      html  css  js  c++  java
  • 剑指Offer35.复杂链表复制

    题目链接:复杂链表复制

    思路:哈希表。先遍历一遍用hash表存储新旧链表对应的结点,然后再遍历一遍通过哈希表确定新链表中random所指向的结点。

    代码:

    /*
    // Definition for a Node.
    class Node {
        int val;
        Node next;
        Node random;
    
        public Node(int val) {
            this.val = val;
            this.next = null;
            this.random = null;
        }
    }
    */
    class Solution {
        public Node copyRandomList(Node head) {
            Map<Node, Node> randomMap = new HashMap<>();
            Node t = null;
            for(Node p = head, q=null, pre = null; p != null; p = p.next){
                q = new Node(p.val);
                if(t == null){
                    t = q;
                }else{
                    pre.next = q;
                }
                pre = q;
                randomMap.put(p, q);
            }
            for(Node p = head, q = t; p != null; p = p.next, q = q.next){
                q.random = randomMap.get(p.random);
            }
            return t;
        }
    }
    
  • 相关阅读:
    kvm
    docker及lvs负载
    zookeeper,及k8s基础概念
    zabbix-proxy及ELK
    gitlab及jenkins
    绘图 Matplotlib Numpy Pandas
    Elasticsearch
    Git命令小结
    win黑窗口命令
    Linux基础命令
  • 原文地址:https://www.cnblogs.com/liuyongyu/p/14199679.html
Copyright © 2011-2022 走看看