title: How does a node get added in a linked list and become its new head?
body: <pre><code>public void Add(Node&lt;T&gt; newItem)
  {
      if(this.First==null)
      {
          this.First = newItem;
          this.Last = newItem;
      }
      else
      {
          newItem.next = this.First;
          this.First = newItem;
      }
      Count++;
  }
  </code></pre>
  <p>I don't understand how the <code>else</code> block actually works. I understand that <code>newItem.next</code> points to the <code>First</code> node and then subsequently on next line we assign <code>newItem</code> to <code>First</code>. But I find it hard to see how this manipulation works and how the new node is added in case there already existed a node previously.</p>