Implement exchangePairs
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user