### Function

# GLib SList delete_link

#### Declaration [src]

    GSList*
    g_slist_delete_link (
      GSList* list,
      GSList* link_
    )

#### Description [src]

Removes the node link_ from the list and frees it. Compare this to `g_slist_remove_link()` which removes the node without freeing it.

Removing arbitrary nodes from a singly-linked list requires time that is proportional to the length of the list (ie. O(n)). If you find yourself using `g_slist_delete_link()` frequently, you should consider a different data structure, such as the doubly-linked `GList`.

This function is not directly available to language bindings.

#### Parameters

`list`

  Type: A list of `gpointer`

  A `GSList`.

  The data is owned by the caller of the function.

`link_`

  Type: A list of `gpointer`

  Node to delete.

  The data is owned by the caller of the function.

#### Return value

Type: A list of `gpointer`

The new head of `list`.

The data is owned by the called function.