调用哪个构造函数?C++,结构体

 struct LinkNode
{
    T data; //数据域
    LinkNode<T>*link;  //链指针域
    LinkNode(LinkNode<T> *ptr =NULL) {link=ptr;}
    LinkNode(const T&item,LinkNode<T> *ptr=NULL)
    {
        data=item;
        link=ptr;
    }
};

如果有下面代码
T value;
LinkNode *desptr=first=new LinkNode;
desptr->link=new LinkNode(value);

    它调用的是LinkNode的哪个构造函数?为什么呢?
 LinkNode *desptr=first=new LinkNode;
这个调用第一个
desptr->link=new LinkNode(value);
这个调用第二个

输入参数有默认值,使用时可以省略。