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.

    方法

    	    public RandomListNode copyRandomList(RandomListNode head) {
    	        RandomListNode newHead = null;
    	        
    	        if (head != null) {
    	        	RandomListNode cur = head;
    	        	while (cur != null) {
    		        	RandomListNode temp = new RandomListNode(cur.label);
    		        	temp.next = cur.next;
    		        	cur.next = temp;
    		        	cur = cur.next.next;
    	        	}
    	        	cur = head;
    	        	RandomListNode newCur = head.next;
    	        	while(cur != null) {
    	        		if (cur.random != null) {
    	        			newCur.random = cur.random.next;
    	        		}
    	        		cur = cur.next.next;
    	        		if (cur != null) {
    	        			newCur = newCur.next.next;
    	        		}
    	        		
    	        	}
    	        	
    	        	cur = head;
    	        	newHead = cur.next;
    	        	newCur = newHead;
    	        	while (cur != null) {
    	        		cur.next = newCur.next;
    	        		cur = newCur.next;
    	        		if (cur != null) {
    		        		newCur.next = cur.next;
    		        		newCur = cur.next;
    	        		} else {
    	        			newCur.next = null;
    	        		}
    
    	        	}
    	        }
    	        
    	        
    	        return newHead;
    	    }


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    裴蜀定理
    欧几里得算法
    最大公约数
    质数和合数
    整除
    CSP斗地主
    skkyk:点分治
    题解:P2130 狂奔的Wzf
    题解:最大子树和
    博客大换主题祭
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4656533.html
Copyright © 2011-2022 走看看