public RandomListNode copyRandomList(RandomListNode head) {
		if(head == null )
			return head;
		//copy and linked.
		RandomListNode prev;
		RandomListNode head2;
		for(prev  = head;prev != null;prev = prev.next.next){
			//copy a node
			RandomListNode t = new RandomListNode(prev.label);
			t.next = prev.next;
			//linked after prev;
			prev.next = t;
		}
		prev = head;
		while(prev != null && prev.next != null){
			RandomListNode t  = prev.next;
			if(prev.random != null)
				t.random = prev.random.next;
			else 
				t.random = null;
			prev = t.next;
		}
//		for(prev = head;prev!= null;prev = prev.next){
//			System.out.print(prev.label+" ");
//		}
//		System.out.println();
		//chaifen linkedlist;
		prev = head;
		head2 = prev.next;
		while(prev != null && prev.next != null){
			RandomListNode t  = prev.next;
			prev.next = t.next;
			prev = prev.next;
			if(t.next != null)
				t.next = t.next.next;
		}
        return head2;
    }