拷貝含隨機指標的連結串列
阿新 • • 發佈:2021-10-15
心之所向,素履以往 生如逆旅,一葦以航public class Main { static class Node { Node next; Node random; int val; public Node(int val) { this.val = val; } } private static Node copy(Node head) { if (head == null) { return null; } Node cur = head, next; while (cur != null) { next = cur.next; Node node = new Node(cur.val); cur.next = node; node.next = next; cur = next; } Node newHead = head.next; Node cur1 = head, cur2 = head.next, next1, next2; while (cur1 != null) { if (cur1.random != null) { cur2.random = cur1.random.next; } next1 = cur1.next.next; next2 = next1 == null ? null : next1.next; cur1.next = next1; cur2.next = next2; cur1 = next1; cur2 = next2; } return newHead; } public static void main(String[] args) { Node n1 = new Node(1); Node n2 = new Node(2); Node n3 = new Node(3); n1.next = n2; n2.next = n3; n1.random = n2; n2.random = n3; n3.random = n1; Node copy = copy(n1); System.out.println("-----"); } }