if prevX == None: head = currY else: prevX.next = currY # If y is head // make x as the new head if prevY == None: head = currX else: prevY.next = currX # Swap next pointers temp = currX.next currX.next = currY.next currY.next = temp return head if __name__ == '__main__': l = LinkedList() l.append_node("A") l.append_node("B") l.append_node("C") l.append_node("D") l.traverse() l.head = swap_node(l.head, 'A', 'C') l.traverse()