🔥Разбор задачи Valid Palindrome (LeetCode #125)
Нужно определить, является ли строка палиндромом — читается ли она одинаково вперёд и назад, игнорируя пробелы, регистр и знаки препинания.
✅ "Madam" -> True
✅ "Was it a car or a cat I saw?" -> True
❌ "race a car" -> False
💡Пояснение кода:
• Перебираем каждый символ в строке string и приводим все буквы к нижнему регистру если если символ — буква или цифра.
• Собираем все такие символы обратно в одну строку clean.
• Сравниваем clean с её перевёрнутым вариантом.
Другие способы решения можно посмотреть здесь👇
https://neetcode.io/solutions/valid-palindrome
t.me/IT_Python_ZheglY | #LeetCode
Нужно определить, является ли строка палиндромом — читается ли она одинаково вперёд и назад, игнорируя пробелы, регистр и знаки препинания.
✅ "Madam" -> True
✅ "Was it a car or a cat I saw?" -> True
❌ "race a car" -> False
💡Пояснение кода:
• Перебираем каждый символ в строке string и приводим все буквы к нижнему регистру если если символ — буква или цифра.
• Собираем все такие символы обратно в одну строку clean.
• Сравниваем clean с её перевёрнутым вариантом.
Другие способы решения можно посмотреть здесь👇
https://neetcode.io/solutions/valid-palindrome
t.me/IT_Python_ZheglY | #LeetCode
🔥3
🔥Разбор задачи LeetCode #136: Single Number
• Дан массив чисел, в котором все числа встречаются дважды, кроме одного — найти этот единственный элемент.
Input: [2, 2, 1]
Output: 1
💡 Идея решения и разбор кода:
• Используем XOR — побитовое исключающее ИЛИ
• Если применить XOR ко всем элементам массива, пары исчезнут и останется только один уникальный элемент.
1. Инициализируем переменную result значением 0 (переменная будет хранить промежуточный результат операции XOR)
2. Проходимся по циклу сравнивая биты чисел. Если биты совпадают — результат 0, иначе 1.
x ^ x = 0
x ^ 0 = x
Таким образом пары одинаковых чисел "обнуляются", оставляя только уникальные числа.
📊 Сложность:
Время: O(n), где n — длина массива.
Память: O(1).
Ссылка на задачу LeetCode👇
https://leetcode.com/problems/single-number/description/
❗️Более подробно о логического оператор XOR разборем в следующем посте
t.me/IT_Python_ZheglY | #LeetCode
• Дан массив чисел, в котором все числа встречаются дважды, кроме одного — найти этот единственный элемент.
Input: [2, 2, 1]
Output: 1
💡 Идея решения и разбор кода:
• Используем XOR — побитовое исключающее ИЛИ
• Если применить XOR ко всем элементам массива, пары исчезнут и останется только один уникальный элемент.
1. Инициализируем переменную result значением 0 (переменная будет хранить промежуточный результат операции XOR)
2. Проходимся по циклу сравнивая биты чисел. Если биты совпадают — результат 0, иначе 1.
x ^ x = 0
x ^ 0 = x
Таким образом пары одинаковых чисел "обнуляются", оставляя только уникальные числа.
📊 Сложность:
Время: O(n), где n — длина массива.
Память: O(1).
Ссылка на задачу LeetCode👇
https://leetcode.com/problems/single-number/description/
❗️Более подробно о логического оператор XOR разборем в следующем посте
t.me/IT_Python_ZheglY | #LeetCode
🔥1
🔥Как работает логический оператор XOR:
• Числа переводятся в биты и с помощью логической операции ИЛИ, и сравниваются по правилу:
x ^ x = 0
x ^ 0 = x
• Таким образом запись 4 ^ 1 будет выглядить так:
100 (4)
^ 001 (1)
-------
101 (5)
💡 Как работает цикл XOR из задачи выше #136: Single Number:
nums = [4, 1, 2, 1, 2]
result = 0 ^ 4 → 4
result = 4 ^ 1 → 5
result = 5 ^ 2 → 7
result = 7 ^ 1 → 6 ← 1 встретилось второй раз — "удалилось"
result = 6 ^ 2 → 4 ← 2 тоже встретилось второй раз — "удалилось"
❗️Однако проще это представить таким способом:
= 4 ^ 1 ^ 2 ^ 1 ^ 2
= (1 ^ 1) ^ (2 ^ 2) ^ 4
= 0 ^ 0 ^ 4
= 4
📌 Итоги и доп. материал:
XOR не знает, что число повторяется, но результат операции ведёт себя так, будто повторяющиеся числа удаляются.Если число встречается дважды, результат будет такой, будто его не было вообще.
Это делает XOR идеальным инструментом для задач, где нужно "удалить дубли".
Больше о различных логических операторах👇
https://www.geeksforgeeks.org/python-bitwise-operators/
Подробнее о XOR 👇
https://javarush.com/groups/posts/operator-xor-v-python
#articles #python
• Числа переводятся в биты и с помощью логической операции ИЛИ, и сравниваются по правилу:
x ^ x = 0
x ^ 0 = x
• Таким образом запись 4 ^ 1 будет выглядить так:
100 (4)
^ 001 (1)
-------
101 (5)
💡 Как работает цикл XOR из задачи выше #136: Single Number:
nums = [4, 1, 2, 1, 2]
result = 0 ^ 4 → 4
result = 4 ^ 1 → 5
result = 5 ^ 2 → 7
result = 7 ^ 1 → 6 ← 1 встретилось второй раз — "удалилось"
result = 6 ^ 2 → 4 ← 2 тоже встретилось второй раз — "удалилось"
❗️Однако проще это представить таким способом:
= 4 ^ 1 ^ 2 ^ 1 ^ 2
= (1 ^ 1) ^ (2 ^ 2) ^ 4
= 0 ^ 0 ^ 4
= 4
📌 Итоги и доп. материал:
XOR не знает, что число повторяется, но результат операции ведёт себя так, будто повторяющиеся числа удаляются.Если число встречается дважды, результат будет такой, будто его не было вообще.
Это делает XOR идеальным инструментом для задач, где нужно "удалить дубли".
Больше о различных логических операторах👇
https://www.geeksforgeeks.org/python-bitwise-operators/
Подробнее о XOR 👇
https://javarush.com/groups/posts/operator-xor-v-python
#articles #python
GeeksforGeeks
Python Bitwise Operators - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
🐍 *args | **kwargs — Важны звёздочки, а не имена!
🗣 В Python распаковку аргументов делают операторы * и **. А
🌟 Что делают звёздочки:
* — собирает все переданные позиционные аргументы в кортеж.
** — собирает все переданные именованные аргументы (ключ=значение) в словарь.
✅ Можно писать так, и работать будет одинаково:
💡Вывод:
📌Звёздочки — это настоящие операторы, а имена вроде
📌Эти операторы необходимы для более гибкого приема аргументов, когда заранее не известно сколько их будет.
🖥 Больше информации о args и kwargs можно прочесть тут:
https://sky.pro/wiki/python/rabota-s-argumentami-v-python-args-i-kwargs/
t.me/IT_Python_ZheglY | #articles #python
🗣 В Python распаковку аргументов делают операторы * и **. А
args
, kwargs
— это просто соглашения по имени, ты можешь называть их как угодно!🌟 Что делают звёздочки:
* — собирает все переданные позиционные аргументы в кортеж.
** — собирает все переданные именованные аргументы (ключ=значение) в словарь.
✅ Можно писать так, и работать будет одинаково:
def func(*args, kwargs):
pass
def func(*anything, **hello):
pass
💡Вывод:
📌Звёздочки — это настоящие операторы, а имена вроде
args
и kwargs
— просто соглашение ради читаемости.📌Эти операторы необходимы для более гибкого приема аргументов, когда заранее не известно сколько их будет.
🖥 Больше информации о args и kwargs можно прочесть тут:
https://sky.pro/wiki/python/rabota-s-argumentami-v-python-args-i-kwargs/
t.me/IT_Python_ZheglY | #articles #python
🔥3👍2
🔥Задача с LeetCode #344: Reverse String
Необходимо развернуть список символов in-place, т.е. без создания нового списка.
Input: ["n","e","e","t"]
Output: ["t","e","e","n"]
💡Идея решения:
• Создаём два указателя — left в начале, right в конце.
• Пока они не встретятся, меняем местами s[left] и s[right].
• После каждой замены сдвигаем указатели навстречу друг другу.
💡Альтернативное решение:
🖥 Подробное видео решение можно посмотреть здесь👇
https://neetcode.io/solutions/reverse-string
@IT_Python_ZheglY | #leetcode #python
Необходимо развернуть список символов in-place, т.е. без создания нового списка.
Input: ["n","e","e","t"]
Output: ["t","e","e","n"]
💡Идея решения:
• Создаём два указателя — left в начале, right в конце.
• Пока они не встретятся, меняем местами s[left] и s[right].
• После каждой замены сдвигаем указатели навстречу друг другу.
💡Альтернативное решение:
def reverseString(s):
s.reverse()
🖥 Подробное видео решение можно посмотреть здесь👇
https://neetcode.io/solutions/reverse-string
@IT_Python_ZheglY | #leetcode #python
❤4
💡 Что такое оценка алгоритма и зачем она нужна?
Оценка алгоритма — это способ понять, насколько эффективно работает код: по времени выполнения и объёму используемой памяти.
⏱️ Временная сложность (Time Complexity) — показывает, как изменяется время выполнения алгоритма при росте объёма данных. Ниже — от лучших к худшим:
✅ O(1) — константное время. Алгоритм работает одинаково быстро при любом размере входа.
Пример: доступ к элементу массива по индексу
✅ O(log n) — логарифмическая сложность. Алгоритм быстро сужает область поиска.
Пример: бинарный поиск в отсортированном массиве
✅ O(n) — линейная сложность. Время растёт пропорционально числу элементов.
Пример: пройтись по массиву и найти максимум
✅ O(n log n) — эффективно масштабируется, часто встречается в быстрых сортировках.
Пример: Merge Sort, Heap Sort
⚠️ Сложности, которых стоит избегать:
🚫 O(n²) — квадратичная сложность, характерна для вложенных циклов.
Пример: пузырьковая сортировка, сравнение всех пар
🚫 O(n³) — кубическая сложность, обычно три вложенных цикла.
Пример: наивное перемножение матриц
🚫 O(2ⁿ) — экспоненциальная. Время выполнения удваивается с каждым шагом.
Пример: рекурсивный подсчёт чисел Фибоначчи
🚫 O(n!) — факториальная. Перебираются все возможные варианты.
Пример: задача коммивояжёра, генерация всех перестановок
Прочесть более подробно о Big O можно здесь: 👇
https://habr.com/ru/articles/782608/
@IT_Python_ZheglY | #python
Оценка алгоритма — это способ понять, насколько эффективно работает код: по времени выполнения и объёму используемой памяти.
⏱️ Временная сложность (Time Complexity) — показывает, как изменяется время выполнения алгоритма при росте объёма данных. Ниже — от лучших к худшим:
✅ O(1) — константное время. Алгоритм работает одинаково быстро при любом размере входа.
Пример: доступ к элементу массива по индексу
✅ O(log n) — логарифмическая сложность. Алгоритм быстро сужает область поиска.
Пример: бинарный поиск в отсортированном массиве
✅ O(n) — линейная сложность. Время растёт пропорционально числу элементов.
Пример: пройтись по массиву и найти максимум
✅ O(n log n) — эффективно масштабируется, часто встречается в быстрых сортировках.
Пример: Merge Sort, Heap Sort
⚠️ Сложности, которых стоит избегать:
🚫 O(n²) — квадратичная сложность, характерна для вложенных циклов.
Пример: пузырьковая сортировка, сравнение всех пар
🚫 O(n³) — кубическая сложность, обычно три вложенных цикла.
Пример: наивное перемножение матриц
🚫 O(2ⁿ) — экспоненциальная. Время выполнения удваивается с каждым шагом.
Пример: рекурсивный подсчёт чисел Фибоначчи
🚫 O(n!) — факториальная. Перебираются все возможные варианты.
Пример: задача коммивояжёра, генерация всех перестановок
Прочесть более подробно о Big O можно здесь: 👇
https://habr.com/ru/articles/782608/
@IT_Python_ZheglY | #python
Хабр
Сложность алгоритмов. Разбор Big O
Сложность алгоритмов - это ключевой аспект при проектировании и создании веб-приложений, особенно при работе с большим объемом данных или выполнении вычислительно сложных операций. Понимание, как...
👏9🔥8
🔥 ТОП сортировок: что важно знать разработчику и на собеседовании?
В мире алгоритмов сортировки есть много разных вариантов, но какие действительно часто встречаются в продакшене и на собеседованиях?
😀 Почему это важно?
На собеседованиях часто спрашивают именно Quick Sort, Merge Sort и Tim Sort — это базовые алгоритмы, которые нужно знать хорошо. Остальные — полезны для расширения кругозора и понимания узких случаев.
✅ — используется в продакшене
🔥 — часто спрашивают на собеседованиях
📚 — часто используется для обучения и объяснения основ
📌 В следующих постах разберем способы сортировки на примере кода
[IT-PythonHub-LeetCode](t.me/IT_Python_ZheglY) | #Сортировки
В мире алгоритмов сортировки есть много разных вариантов, но какие действительно часто встречаются в продакшене и на собеседованиях?
На собеседованиях часто спрашивают именно Quick Sort, Merge Sort и Tim Sort — это базовые алгоритмы, которые нужно знать хорошо. Остальные — полезны для расширения кругозора и понимания узких случаев.
✅ — используется в продакшене
🔥 — часто спрашивают на собеседованиях
📚 — часто используется для обучения и объяснения основ
[IT-PythonHub-LeetCode](t.me/IT_Python_ZheglY) | #Сортировки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🥰6👏6🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🫧 Принцип сортировки пузырьком (Bubble Sort)
🔜 Сортировка пузырьком — это простой алгоритм сортировки, который многократно проходит по списку, сравнивая пары соседних элементов и меняя их местами, если они идут в неправильном порядке. Таким образом, большие элементы "всплывают" в конец списка, как пузырьки в воде.
📌 Подходит для:
🔵 учебных и демонстрационных целей.
🗣️ Алгоритм стабилен и легко понимается, но медленный (O(n²)) — применяется в основном для обучения.
🔵 Средняя O(n²)
🔵 Худшая O(n²)
🔵 Память O(1) — работает на месте
@IT_Python_ZheglY | #Сортировки #Python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
swapped = False # Флаг для оптимизации
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
# Меняем элементы местами
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
if not swapped:
break
data = [5, 1, 4, 2, 8]
bubble_sort(data)
@IT_Python_ZheglY | #Сортировки #Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👏11👍9
This media is not supported in your browser
VIEW IN TELEGRAM
💡Insertion Sort — сортировка вставками
🔜 Сортировка вставками — это один из самых простых алгоритмов сортировки. Он проходит по массиву слева направо, постепенно строя отсортированную часть: каждый новый элемент вставляется на своё место относительно уже отсортированных элементов.
📌 Подходит для:
🔵 небольших массивов (до ~100 элементов),
🔵 почти отсортированных данных,
🔵 учебных и демонстрационных целей.
🗣️ Простой в понимании и реализации, но медленный при больших объёмах данных.
🔵 Средняя O(n²)
🔵 Худшая O(n²)
🔵 Память O(1) — работает на месте
@IT_Python_ZheglY | #Сортировки@IT_Python_ZheglY
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
data = [5, 3, 4, 1]
insertion_sort(data)
@IT_Python_ZheglY | #Сортировки@IT_Python_ZheglY
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰10👏6🔥4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Radix Sort — это нестандартный, но очень мощный алгоритм сортировки. В отличие от большинства алгоритмов, он не использует сравнение элементов. Вместо этого сортирует числа поразрядно: от младшего разряда к старшему (или наоборот).
@IT_Python_ZheglY | #Сортировки #python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👏7👍5🔥1
🎙 Подкаст: " Путь в 1000 шагов" Содержательные имена
💡Что должно содержать в себе название переменной? Какая длинна имени оптимальна? Как придумать подходящее имя?
Все о содержательных именах в данном подкасте!
📌 Таймлайны:
▫️00:00-02:15 – Почему имена это фундамент чистого кода?
▫️02:20-06:00 – Чем руководство ваться в выборе имени? Примеры правильных и неудачных именований.
▫️06:10-11:30 – Дезинформации в именованиях. Разбор частых ошибок при выборе имен переменных.
▫️11:50-16:30 – Чем опасны схожие имена переменных и как это исправить? Использование каких слов стоит избегать в переменных?
▫️16:30-20:30 – В чем важность использования удобопроизносимых имен?
▫️20:30-30:00 – Что не стоит писать в именах переменных? Практические советы и общепринятые паттерны при выборе имен.
▫️30:3-36:08 – Корректные переводы и имена пространства задач. Какая оптимальная длинна имени переменной?
🎧 Ссылка на выпуск: 👇
https://music.yandex.ru/album/18513266/track/108941203?utm_source=web&utm_medium=copy_link
💡Что должно содержать в себе название переменной? Какая длинна имени оптимальна? Как придумать подходящее имя?
Все о содержательных именах в данном подкасте!
📌 Таймлайны:
▫️00:00-02:15 – Почему имена это фундамент чистого кода?
▫️02:20-06:00 – Чем руководство ваться в выборе имени? Примеры правильных и неудачных именований.
▫️06:10-11:30 – Дезинформации в именованиях. Разбор частых ошибок при выборе имен переменных.
▫️11:50-16:30 – Чем опасны схожие имена переменных и как это исправить? Использование каких слов стоит избегать в переменных?
▫️16:30-20:30 – В чем важность использования удобопроизносимых имен?
▫️20:30-30:00 – Что не стоит писать в именах переменных? Практические советы и общепринятые паттерны при выборе имен.
▫️30:3-36:08 – Корректные переводы и имена пространства задач. Какая оптимальная длинна имени переменной?
🎧 Ссылка на выпуск: 👇
https://music.yandex.ru/album/18513266/track/108941203?utm_source=web&utm_medium=copy_link
👍17❤11🔥11🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
Яндекс проведет Dream → Teamlead конференцию которая поможет тебе прокачать управленческие навыки.
Москва, офис Яндекса,
ул. Льва Толстого, д.16
19 июля | 11:00 — 19:00
🔗 Для участия регистрируйся по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🥰12👍11👏8😁2
This media is not supported in your browser
VIEW IN TELEGRAM
🚫Минусы:
def counting_sort(arr):
max_val = max(arr)
count = [0] * (max_val + 1)
for num in arr:
count[num] += 1
index = 0
for i in range(len(count)):
while count[i] > 0:
arr[index] = i
index += 1
count[i] -= 1
@IT_Python_ZheglY | #сортировки| #python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🔥9🥰6👏2💯2🤮1
Ответы — в новом выпуске! Вот главные моменты:
▫️00:00-07:15 — Почему 90% комментариев — это извинения за плохой код. Почему следует избегать этого?
▫️08:50-10:20 — Типы токсичных комментариев. Когда комментарии деструктивно влияют на код?
▫️10:20-17:10 — Когда комментарии имеют место быть? Виды полезеных комментриев и договоренности программистов
▫️17:20-27:16 — Какие комментарии не должны использоваться в коде? Примеры плохих комментариев.
https://music.yandex.ru/album/18513266/track/110991282?utm_medium=copy_link
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥12🥰11🤮1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Merge Sort — сортировка слиянием
Merge Sort — один из самых известных и фундаментальных алгоритмов сортировки, используемый в продакшене. Основан на принципе "разделяй и властвуй": делит массив, сортирует части и сливает их в упорядоченный результат. Стабильный, предсказуемый и надёжный.
📌 Плюсы:
• Хорошая гарантированная сложность даже в худшем случае O(n log n)
• Стабильная сортировка — сохраняет порядок равных элементов
• Хорошо работает с большими объемами данных
⚠️ Единственный недостаток:
• Требует дополнительной памяти O(n), потому что создаёт новые массивы при слиянии.
🗣️ Также встречается в собеседованиях как классический пример сортировки "разделяй и властвуй".
@IT_Python_ZheglY | #сортировки
Merge Sort — один из самых известных и фундаментальных алгоритмов сортировки, используемый в продакшене. Основан на принципе "разделяй и властвуй": делит массив, сортирует части и сливает их в упорядоченный результат. Стабильный, предсказуемый и надёжный.
• Хорошая гарантированная сложность даже в худшем случае O(n log n)
• Стабильная сортировка — сохраняет порядок равных элементов
• Хорошо работает с большими объемами данных
⚠️ Единственный недостаток:
• Требует дополнительной памяти O(n), потому что создаёт новые массивы при слиянии.
@IT_Python_ZheglY | #сортировки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23🔥14👍12💯6🍓2💋2🤮1🍾1
💡Реализация Merge Sort на языке Python 👇
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
return merge(left, right)
def merge(left, right):
result = []
i = j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result.extend(left[i:])
result.extend(right[j:])
return result
❤19🔥14👍10💩1
Все о карьере в IT в этом подкасте!
🎧 Ссылка на выпуск:
https://music.yandex.ru/album/16469736/track/87074010?utm_medium=copy_link
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21🔥14👏10🤮1
🔥Задача с LeetCode #647: Palindromic Substrings
🔜 Требуется подсчитать количество палиндромных подстрок в заданной строке.
Палиндром - это строка, которая читается одинаково как слева направо, так и справа налево.
Input: s = "aaa"
Output: 6
Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa"
💡 Идея решения:
Алгоритм основан на идее, что каждый палиндром в строке имеет центр (или два центра для палиндромов четной длины). Он проходит по всем возможным центрам и "расширяется" в обе стороны, проверяя, образуется ли палиндром.
🔵 В нечетных палиндромах каждый символ рассматриваем как центр
🔵 В четных палиндромах каждую пару соседних символов рассматриваем как центр
🖥 Подробное видео решение можно посмотреть здесь
@IT_Python_ZheglY | #leetcode #python
Палиндром - это строка, которая читается одинаково как слева направо, так и справа налево.
Input: s = "aaa"
Output: 6
Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa"
Алгоритм основан на идее, что каждый палиндром в строке имеет центр (или два центра для палиндромов четной длины). Он проходит по всем возможным центрам и "расширяется" в обе стороны, проверяя, образуется ли палиндром.
@IT_Python_ZheglY | #leetcode #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥9❤8🍓2🤮1💋1
🔥Задача с Leetcode #206: Reverse Linked List
🔜 Дана голова односвязного списка. Нужно развернуть список и вернуть новую голову.
Исходный список: 1 -> 2 -> 3 -> 4 -> 5
Развёрнутый: 5 -> 4 -> 3 -> 2 -> 1
🔖 Разбор кода:
🔵 prev (previous) - Хранит предыдущий узел, который станет следующим при развороте.
🔵 curr (current) - Текущий узел, который мы обрабатываем.
🔵 next_node - Временное хранилище для следующего узла перед разворотом
💡 Идея алгоритма:
🔵 Сохраняем next_node — чтобы не потерять следующий узел после изменения ссылки.
🔵 Разворачиваем ссылку —
🔵 Сдвигаем указатели — двигаем prev и curr вперёд.
🖥 Подробное решение можно посмотреть здесь
🧑💻 @IT_Python_ZheglY | #leetcode #python
Исходный список: 1 -> 2 -> 3 -> 4 -> 5
Развёрнутый: 5 -> 4 -> 3 -> 2 -> 1
curr.next
теперь указывает на prev.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍7👏5🔥1🤮1🍓1