zoukankan      html  css  js  c++  java
  • Leetcode-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.

    Solution:

     1 /**
     2  * Definition for singly-linked list with a random pointer.
     3  * class RandomListNode {
     4  *     int label;
     5  *     RandomListNode next, random;
     6  *     RandomListNode(int x) { this.label = x; }
     7  * };
     8  */
     9 public class Solution {
    10     public RandomListNode copyRandomList(RandomListNode head) {
    11         Map<RandomListNode,RandomListNode> map = new HashMap<RandomListNode,RandomListNode>();
    12         if (head==null) return null;
    13 
    14         RandomListNode head2 = new RandomListNode(head.label);
    15         map.put(head,head2);
    16         RandomListNode cur = head2;
    17 
    18         while (head!=null){
    19             RandomListNode rand1 = head.random;
    20             if (rand1!=null && map.containsKey(rand1)){
    21                 cur.random = map.get(rand1);
    22             } else if (rand1!=null) {
    23                 RandomListNode rand2 = new RandomListNode(rand1.label);
    24                 map.put(rand1,rand2);
    25                 cur.random = rand2;
    26             }
    27 
    28             if (head.next==null){
    29                 cur.next=null;
    30             } else {
    31                 RandomListNode next = head.next;
    32                 if (map.containsKey(next))
    33                     cur.next = map.get(next);
    34                 else {
    35                     RandomListNode next2 = new RandomListNode(next.label);
    36                     cur.next = next2;
    37                     map.put(next,next2);
    38                 }
    39             }
    40 
    41             head = head.next;
    42             cur = cur.next;
    43         }
    44 
    45         return head2;        
    46     }
    47 }
  • 相关阅读:
    mui---子页面主动调用父页面的方法
    宝塔使用FTP的问题
    css---颜色过渡渐变
    mui---开发直播APP
    mui---计算缓存大小及清除缓存
    mui---自定义页面打开的方向
    mui---取消掉默认加载框
    mui+回复弹出软键盘
    还不错的MUI技术文档
    mui---父页面跳子页面刷新子页面
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4158915.html
Copyright © 2011-2022 走看看