Implement exchangePairs

This commit is contained in:
2021-09-05 15:40:09 +02:00
parent afe2bd6553
commit e66fd800cf

View File

@ -94,8 +94,26 @@ public class RecursiveDoubleListItemProcessor<T> extends DoubleListItemProcessor
@Override
public void exchangePairs(DoubleListItem<T> list) {
// TODO: Your training
throw new RuntimeException("unimplemented");
if (list == null || list.next == null || list.next.next == null) {
return;
}
var next = list.next;
var nextNext = next.next;
var rest = nextNext.next;
list.next = nextNext;
nextNext.prev = list;
nextNext.next = next;
next.prev = nextNext;
next.next = rest;
if (rest != null) {
rest.prev = next;
}
exchangePairs(list.next.next);
}
@Override