title: Linked lists with no data and a self referential pointer
body: <pre><code>kernel/include/linux/types.h
  
  .....
  struct list_head {
      struct list_head *next, *prev;
  };
  
  struct hlist_head {
      struct hlist_node *first;
  };
  
  struct hlist_node {
      struct hlist_node *next, **pprev;
  };
  </code></pre>
  
  <p>What purpose these lists containing no data serve?</p>