remove method

T? remove(
  1. T obj
)

Removes a specific node from this list and then returns its data. This method returns null if the list is empty or the specific node does not exists.

Implementation

T? remove(T obj) {
  if (_head == null) return null;
  _Node<T>? current = _head, previous;
  while (current != null) {
    if (current.data == obj) {
      if (current == _head) return removeFirst();
      previous!.next = current.next;
      _size--;
      return current.data;
    }
    previous = current;
    current = current.next;
  }
  return null;
}