您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页【Java】复制复杂链表

【Java】复制复杂链表

来源:榕意旅游网
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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务