class Node {
int val;
Node random;
Node next;
Node(int val) {
this.val = val;
}
}
class Copy{
Node copy(Node head) {
if (head == null) {
return null;
}
Node cur = head;
while (cur != null) {
Node node = new Node(cur.val);
node.next = cur.next;
cur.next = node;
cur = node.next;
}
cur = head;
while (cur != null) {
if (cur.random != null) {
cur.next.random = cur.random.next;
}
cur = cur.next.next;
}
Node newHead = head.next;
cur = head;
while (cur != null) {
Node node = cur.next;
cur.next = node.next;
if (node.next != null) {
node.next = node.next.next;
}
cur = cur.next;
}
return newHead;
}
}
public class CC{
static void testCopy(){
Node n1=new Node(1);
Node n2=new Node(2);
Node n3=new Node(3);
Node n4=new Node(3);
n1.next=n2;
n2.next=n3;
n3.next=n4;
n1.random=n2;
n2.random=n1;
n3.random=n3;
Node result=new Copy().copy(n1);
for(Node cur=n1;cur!=null;cur=cur.next){
System.out.printf("Node(%s,%d,%s)-->%n",cur,cur.val,cur.random);
}
System.out.println();
System.out.println();
for (Node cur=result; cur!= null; cur=cur.next) {
System.out.printf("Node(%s,%d,%s)-->%n",
cur, cur.val, cur.random);
}
System.out.println();
}
public static void main(String[] args){
testCopy();
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务