Программа на C для переупорядочения связанного списка таким образом, чтобы все четные и нечетные узлы были вместе
Перестройте связанный список таким образом, чтобы все узлы нечетных позиций были вместе, а все узлы четных позиций были вместе,
Примеры:
Input: 1->2->3->4 Output: 1->3->2->4 Input: 10->22->30->43->56->70 Output: 10->30->56->22->43->70
В этом вопросе важно убедиться, что все указанные ниже случаи обрабатываются.
- Пустой связанный список.
- Связный список только с одним узлом.
- Связный список только с двумя узлами.
- Связный список с нечетным числом узлов.
- Связный список с четным числом узлов.
Приведенная ниже программа поддерживает два указателя «нечетный» и «четный» для текущих узлов в нечетных и четных позициях соответственно. Мы также сохраняем первый узел четного связанного списка, чтобы мы могли присоединить четный список в конце нечетного списка после того, как все нечетные и четные узлы будут соединены вместе в двух разных списках.
Выход:
Given Linked List 1->2->3->4->5->NULL Modified Linked List 1->3->5->2->4->NULL
Временная сложность: O(n), где n — количество узлов в данном связанном списке.
Вспомогательное пространство: O(1), дополнительное пространство не требуется, поэтому это константа.
Пожалуйста, обратитесь к полной статье о Изменить связанный список, чтобы все четные и нечетные узлы были вместе для получения более подробной информации!