Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Удалить дубли из несортированного связного списка
- */
- /**
- * Удаляет дубликаты из связаного списка.
- * Не использует дополнительную память.
- * Функция принимает на вход указатель на начало списка.
- *
- * @param {Node} head
- * @returns {Node}
- */
- function removeNode(head) {
- // Предполагается, что head объект вида { data: <*>, next: <Node> }
- let current = head;
- while (current !== null) {
- let runner = current;
- while (runner.next !== null) {
- if (runner.next.data === current.data) {
- runner.next = runner.next.next;
- } else {
- runner = runner.next;
- }
- }
- current = current.next;
- }
- return head;
- }
- let tree = {
- data: 1,
- next: {
- data: 2,
- next: {
- data: 1,
- next: {
- data: 4,
- next: null
- }
- }
- }
- }
- console.log(removeNode(tree))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement