Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Node preX = x.getPrev();
- Node nexX = x.getNext();
- Node preY= y.getPrev();
- Node nexY= y.getNext();
- //edge case #1: x or y has nothing.
- if(x==null || y == null) return;
- //edge case #2: x == y, nothing to swap
- if(x==y) return; //nothing to swap;
- //edge case #3: edge case #3: x is right next to y
- if (x.getNext() == y)
- {
- preX.setNext(y);
- y.setPrev(preX);
- nexY.setPrev(x);
- x.setNext(nexY);
- x.setPrev(y);
- y.setNext(x);
- }
- else if(y.getNext() == x)
- {
- preY.setNext(x);
- x.setPrev(preY);
- nexX.setPrev(y);
- y.setNext(nexX);
- y.setPrev(x);
- x.setNext(y);
- else
- {
- //swap part
- y.setPrev(preX);
- y.setNext(nexX);
- nexX.setPrev(y);
- preX.setNext(y);
- x.setPrev(preY);
- x.setNext(nexY);
- nexY.setPrev(x);
- preY.setNext(x);
- }
Add Comment
Please, Sign In to add comment