Delete node in linked list

LinkedListNode* delete_node[ LinkedListNode* head, int key] { LinkedListNode* prev = nullptr; LinkedListNode* current = head; while [current != nullptr] { if [current->data == key] { if[current == head]{ head = head->next; delete current; current = head; } else{ prev->next = current->next; delete current; current = prev->next; } } else{ prev = current; current = current->next; } } // key not found in list if [current == nullptr] { return head; } return head; } int main[int argc, char* argv[]] { LinkedListNode* list_head = nullptr; list_head = LinkedList::create_random_list[10]; printf["Original: "]; LinkedList::display[list_head]; vectorlst = LinkedList::to_list[list_head]; printf["\nDeleting %d",lst.at[5]]; list_head = delete_node[list_head, lst.at[5]]; printf["\nAfter Delete Node:"]; LinkedList::display[list_head]; printf["\nDeleting [Non-Existing] %d", 101]; list_head = delete_node[list_head, 101]; printf["\nAfter Delete Node:"]; LinkedList::display[list_head]; printf["\nDeleting 1st node:%d", lst.at[0]]; list_head = delete_node[list_head, lst.at[0]]; printf["\nAfter Delete 1st Node:"]; LinkedList::display[list_head]; lst = LinkedList::to_list[list_head]; printf["\nDeleting last node: %d" , lst.at[lst.size[] - 1]]; list_head = delete_node[list_head, lst.at[lst.size[] - 1]]; printf["\nAfter Delete last Node:"]; LinkedList::display[list_head]; }

Video liên quan

Chủ Đề