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;
    	    }


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

  • 相关阅读:
    N!的位数
    c语言memset()函数
    通宵教室(ACM水题)
    欧拉函数+素数筛
    快速幂+大数取模
    观光浏览
    插入类排序(直接插入排序)
    showDoc使用方法
    $_POST与input('post.')区别
    “三日”面试官心得
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4656533.html
Copyright © 2011-2022 走看看