//Node for list storage. class Ndd { int data; Ndd next; Ndd(int d) { data = d; next = null; } } //linked list operations. class lnklist { Ndd hads; //method to swap nodes.. public void swpNds(int xvv, int yvv) { //check two node values,if equal no need of shifting. if (xvv == yvv) return; Ndd prevX = null, currX = hads; while (currX != null && currX.data != xvv) { prevX = currX; currX = currX.next; } Ndd prevY = null, currY = hads; while (currY != null && currY.data != yvv) { prevY = currY; currY = currY.next; } if (currX == null || currY == null) return; if (prevX != null) prevX.next = currY; else hads = currY; if (prevY != null) prevY.next = currX; else hads = currX; Ndd temp = currX.next; currX.next = currY.next; currY.next = temp; } public void push(int nwd-ata) { Ndd nw-nd = new Ndd(nwd-ata); nw-nd.next = hads; hads = nw-nd; } public void prntList() { Ndd tNode = hads; while (tNode != null) { System.out.print(tNode.data+\" \"); tNode = tNode.next; } } public static void main(String[] ssds) { lnklist llist = new lnklist(); llist.push(7); llist.push(6); llist.push(5); llist.push(4); llist.push(3); llist.push(2); llist.push(1); System.out.print(\"\ Linked list before calling swpNds() \"); llist.prntList(); llist.swpNds(4, 3); System.out.print(\"\ Linked list after calling swpNds() \"); llist.prntList(); } } Solution //Node for list storage. class Ndd { int data; Ndd next; Ndd(int d) { data = d; next = null; } } //linked list operations. class lnklist { Ndd hads; //method to swap nodes.. public void swpNds(int xvv, int yvv) { //check two node values,if equal no need of shifting. if (xvv == yvv) return; Ndd prevX = null, currX = hads; while (currX != null && currX.data != xvv) { prevX = currX; currX = currX.next; } Ndd prevY = null, currY = hads; while (currY != null && currY.data != yvv) { prevY = currY; currY = currY.next; } if (currX == null || currY == null) return; if (prevX != null) prevX.next = currY; else hads = currY; if (prevY != null) prevY.next = currX; else hads = currX; Ndd temp = currX.next; currX.next = currY.next; currY.next = temp; } public void push(int nwd-ata) { Ndd nw-nd = new Ndd(nwd-ata); nw-nd.next = hads; hads = nw-nd; } public void prntList() { Ndd tNode = hads; while (tNode != null) { System.out.print(tNode.data+\" \"); tNode = tNode.next; } } public static void main(String[] ssds) { lnklist llist = new lnklist(); llist.push(7); llist.push(6); llist.push(5); llist.push(4); llist.push(3); llist.push(2); llist.push(1); System.out.print(\"\ Linked list before calling swpNds() \"); llist.prntList(); llist.swpNds(4, 3); System.out.print(\"\ Linked list after calling swpNds() \"); llist.prntList(); } }.