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; };