LeetCode: Remove Duplicates from Sorted List
===== Условие ===== Требуется удалить дубликаты в отсортированном связном списке чисел.
===== Решение ===== Для решения необходимо пройтись в цикле по списку, проверяя, равно ли текущее значение элемента следующему: если да, то для текущего элемента переопределяем next на next.next (перепрыгиваем повторяющийся элемент), иначе переходим в цикле к следующему элементу.
Сложность по времени - O(n), сложность по памяти - O(1).
===== Код ===== /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head * @return {ListNode} */ const deleteDuplicates = function(head) { if (!head) return null;
let tail = head;
while(tail.next) { if (tail.next.val === tail.val) { tail.next = tail.next.next; } else { tail = tail.next; } }
return head; };
· 28.06
Адекватно
ответить
коммент удалён