# Removing a Node From a List

You can remove the first node, the last node, or a specific node from a list. The following sections explain how to do it.

## Removing the First Node

To remove the first node from a list, use the `RemHead()` function:

  `Node *RemHead( List *l )`

The `l` argument is a pointer to the list from which you want to remove the node. The function returns a pointer to the node that was removed from the list or NULL if the list was empty.

## Removing the Last Node

To remove the last node from a list, use the `RemTail()` function:

  `Node *RemTail( List *l )`

The `l` argument is a pointer to the list from which you want to remove the node. The function returns a pointer to the node that was removed from the list or NULL if the list was empty.

## Removing a Specific Node

To remove a specific node from a list, use the `RemNode()` function:

  `void RemNode( Node *n )`

The `n` argument is a pointer to the node you want to remove. Because a node can be only in one list, the node is automatically removed from the correct list.