Тех собес на middle-senior Golang Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Golang Developer

Посмотреть видео в категории

(2025-01-23)

Нужно реализовать удаление элемента из односвязного списка.

package main

type ListNode struct {
  Val  int
  Next *ListNode
}

func removeNthFromEnd(head *ListNode, n int) *ListNode {
  dummy := &ListNode{Next: head}
  first, second := dummy, dummy

  // Сдвигаем первый указатель на n + 1 шагов вперед
  for i := 0; i <= n; i++ {
    first = first.Next
  }

  // Двигаем оба указателя до конца списка
  for first != nil {
    first = first.Next
    second = second.Next
  }

  // Удаляем n-й элемент с конца
  second.Next = second.Next.Next

  return dummy.Next
}