美文网首页
35-复杂链表的复制

35-复杂链表的复制

作者: 一方乌鸦 | 来源:发表于2020-05-06 09:13 被阅读0次

    请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。
    考虑用哈希表

    class Solution {
        public Node copyRandomList(Node head) {
            if (head == null) return null;
            Map<Node, Node> map = new HashMap<>();
            Node p = head;
            while(p != null) {
                map.put(p, new Node(p.val));
                p = p.next;
            }
            p = head;
            while(p !=  null) {
                Node n = map.get(p);
                n.next = map.get(p.next);
                n.random = map.get(p.random);
                p = p.next;
            }
            return map.get(head);
        }
    }
    

    相关文章

      网友评论

          本文标题:35-复杂链表的复制

          本文链接:https://www.haomeiwen.com/subject/eyvxghtx.html