rendered paste bodyvoid list_exchange(node*& head_ptr, size_t pos1, size_t pos2) { node* pos1_node = list_locate(head_ptr, pos1); node* pos2_node = list_locate(head_ptr, pos2); node* pos1_bkp = pos1_node; node* pos2_bkp = pos2_node; node* pos1_link = pos1_node->link(); node* pos2_link = pos2_node->link(); pos1_node = pos2_node; pos1_node->set_link(pos2_link); pos2_node = pos1_bkp; pos2_node->set_link(pos1_link); if(head_ptr == pos2_bkp) head_ptr = pos1_node; if(head_ptr == pos1_bkp) head_ptr = pos2_node; }