Guest User

Untitled

a guest
Oct 22nd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.73 KB | None | 0 0
  1. Node preX = x.getPrev();
  2. Node nexX = x.getNext();
  3. Node preY= y.getPrev();
  4. Node nexY= y.getNext();
  5.  
  6. //edge case #1: x or y has nothing.
  7. if(x==null || y == null) return;
  8.  
  9. //edge case #2: x == y, nothing to swap
  10. if(x==y) return; //nothing to swap;
  11.  
  12. //edge case #3: edge case #3: x is right next to y
  13.  
  14. if (x.getNext() == y)
  15. {
  16. preX.setNext(y);
  17. y.setPrev(preX);
  18. nexY.setPrev(x);
  19. x.setNext(nexY);
  20. x.setPrev(y);
  21. y.setNext(x);
  22. }
  23. else if(y.getNext() == x)
  24. {
  25.     preY.setNext(x);
  26.     x.setPrev(preY);
  27.     nexX.setPrev(y);
  28.     y.setNext(nexX);
  29.     y.setPrev(x);
  30.     x.setNext(y);
  31. else
  32. {
  33. //swap part
  34. y.setPrev(preX);
  35. y.setNext(nexX);
  36. nexX.setPrev(y);
  37. preX.setNext(y);
  38.  
  39. x.setPrev(preY);
  40. x.setNext(nexY);
  41. nexY.setPrev(x);
  42. preY.setNext(x);
  43. }
Add Comment
Please, Sign In to add comment