I am no expert in this, but it sounds like you need a sentinel variable in the node class (or struct), which is set in the head node, and each node is checked to see if the sentinel is set, so to prevent infinite traversal .
In your LED::print() method, your if statement is incorrect. You're using a single =, which assigns the value NULL to head. Since NULL is equivalent to 0, the expression (head=NULL) evaluates to zero, i.e. false.
You don't show the definition of head, but assuming it's a global variable:
When you call LED::cot(), head has been set to NULL, so it returns 0.
In your for loop you initialise i to 1, and since cot() returns 0, the condition i < this->cot() is never true, so it never enters the loop. Thus nothing is ever output.
You need to change the if statement to use the equality comparison operator, ==.