Listen - Mystery

Gegeben sei eine einfach verkettete Liste mit separaten Knoten für head und tail. Die folgende Methode wird auf der Liste ausgeführt und erhält zwei Knoten.

	public void mystery(Node node1, Node node2) {
		Node prev1 = head, prev2 = head;
		Node succ1 = head, succ2 = head;
		while (prev1.next != node1) 
			prev1 = prev1.next;
		while (prev2.next != node2)
			prev2 = prev2.next;
		while (node1.next != succ1)
			succ1 = succ1.next;
		while (node2.next != succ2)
			succ2 = succ2.next;
		node1.next = succ2;
		node2.next = succ1;
		prev1.next = node2;
		prev2.next = node1;
	}