尾插法创建带头节点的链表时,报错

创建带头节点的链表时,报错。

运行的时候往链表插值的时候以及打印链表的过程有错误,可能是内存泄漏吧,我也不知道怎么细看

用代码块功能插入代码,请勿粘贴截图
#include
using namespace std;

typedef struct LNode{
    int data;
    struct LNode* next;
}LNode,*LinkList;

//链表初始化
bool InitList(LinkList& L)
{
    L = new LNode;
    if (L == NULL)
        return false;
    L->data = 0;
    L->next = NULL;
    return true;
}

//尾插法建立单链表
LinkList TailInsert(LinkList& L, int x)
{
    LNode* r = L;
    if (r->next != NULL)
    {
        r++;
    }
    LNode* s = new LNode;
    s->data = x;
    s->next = NULL;
    r->next = s;
    r = s;
    delete s;
    return L;
}

void PrintList(const LinkList L)
{
    LNode* ret = L;
    while (ret)
    {
        cout << ret->data << " ";
        ret++;
    }
}

int main()
{
    LinkList L;
    InitList(L);
    bool ret = LinkList(L);
    if (ret)
        cout << "链表初始化成功!" << endl;
    else
        cout << "链表初始化失败!" << endl;
    for (int i = 1; i < 11; i++)
        TailInsert(L, i);
    PrintList(L);
    return 0;
}

数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633