好喜欢画画# Parenting - 为人父母
a*0
1 楼
检查了好几遍 没发现错误
/**
* 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) {
if(head == null)
return null;
if(head.next == null){
RandomListNode result = new RandomListNode(head.label);
result.next = head.next;
result.random = result.random;
return result;
}
RandomListNode scanner = head;
while(scanner != null){
RandomListNode temp = new RandomListNode(scanner.label);
temp.next = scanner.next;
scanner.next = temp;
scanner = scanner.next.next;
}
scanner = head;
while(scanner != null){
if(scanner.random != null)
scanner.next.random = scanner.random.next;
scanner = scanner.next.next;
}
RandomListNode fakeHead = head.next;
scanner = fakeHead;
while(scanner.next != null){
scanner.next= scanner.next.next;
scanner = scanner.next;
}
return fakeHead;
}
}
/**
* 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) {
if(head == null)
return null;
if(head.next == null){
RandomListNode result = new RandomListNode(head.label);
result.next = head.next;
result.random = result.random;
return result;
}
RandomListNode scanner = head;
while(scanner != null){
RandomListNode temp = new RandomListNode(scanner.label);
temp.next = scanner.next;
scanner.next = temp;
scanner = scanner.next.next;
}
scanner = head;
while(scanner != null){
if(scanner.random != null)
scanner.next.random = scanner.random.next;
scanner = scanner.next.next;
}
RandomListNode fakeHead = head.next;
scanner = fakeHead;
while(scanner.next != null){
scanner.next= scanner.next.next;
scanner = scanner.next;
}
return fakeHead;
}
}