zoukankan      html  css  js  c++  java
  • Copy List with Random Pointer

    A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.

    Return a deep copy of the list.

    /**
     * Definition for singly-linked list with a random pointer.
     * class RandomListNode {
     *     int label;
     *     RandomListNode next, random;
     *     RandomListNode(int x) { this.label = x; }
     * };
     */
    public class Solution {
        public RandomListNode copyRandomList(RandomListNode head) {
            // IMPORTANT: Please reset any member data you declared, as
            // the same Solution instance will be reused for each test case.
            if (head == null){
                return null;
            }
            RandomListNode result = new RandomListNode(head.label);
            RandomListNode p = head.next;
            RandomListNode pc = result;
            HashMap ht = new HashMap();
            ht.put(head,result);
            while (p!=null) {
                RandomListNode tmp = new RandomListNode(p.label);
                pc.next = tmp;
                ht.put(p,tmp);
                p = p.next;
                pc = pc.next;
            }
            p = head;
            pc = result;
            while (p!=null){
                if (p.random!=null){
                    pc.random = (RandomListNode) ht.get(p.random);
                }
                p = p.next;
                pc = pc.next;
            }
            return result;
        }
    }
  • 相关阅读:
    intel cpu 架构
    nginx-nagios-pnp4nagios-nrpe安装配置过程
    iostat 命令detail
    nagios环境
    编译安装PHP 5.3.13
    nagios支持PNP图形显示
    nagios配置安装
    在xp下禁用media sense
    linux awk常用命令【转载】
    sed命令解析[转载]
  • 原文地址:https://www.cnblogs.com/23lalala/p/3506838.html
Copyright © 2011-2022 走看看