A better start would be:
public void display()
{
Node temp = head;
Console.WriteLine("\t\t\t\tLinked list\n");
while (temp != null)
{
Console.WriteLine(temp.id);
temp = temp.next;
}
}
This way, you check if the current node is available, before using it! Your version makes sure the next is there, but doesn't check the head for empty.