Cần giúp đỡ sửa lỗi hàm

void DLPreInsert(DList& LR, node* M, int x)
{
//1.Tao nut moi
    node *N = new node;
    N->infor = x;
    N->left = N->right = NULL;

//2.Truong hop danh sach rong
    if(LR.L == NULL)
    {
        LR.L = LR.R = N;
        return;
    };

//3.Truong hop M=L
    if(M == LR.L)
    {
        N->right = M;
        M->left = N;
        LR.L = N;
        return;
    };
 //4.Truong hop M o giua
        M->left->right= M;
        N->left= M -> left;
        M->left= N;

        if(LR.R==M)
        {
            M->left=N;
            M->right=M;
            LR.R=N;
            return;

        };
  };
 //4.Truong hop M o giua
        M->left->right= M;
        N->left= M -> left;
        M->left= N;

        if(LR.R==M)
        {
            M->left=N;
            M->right=M;
            LR.R=N;
            return;

        };
void DLDelete(DList &LR,node *M)
{
    if (LR.R==NULL)
    {
        cout<<"Danh sach rong";
        return;
    };
    if(LR.L==M&&M==LR.R)
    {   L=R=NULL;
    }
    if(LR.L==M)
    {
        L=L->right;
        L->left=NULL;
        return;
    };
    if(LR.R==M)
    {
            R=R->left;
            R->right=NULL;
            return;
    }
    else
    {
        M->left->right=M->right;
        M->right->left=M->left;
    };
    int tg= M->infor;
        delete M;

    return tg;
};
void DLDisplay (DLDist &LR)
{
    P=L;
    while(P!=NULL)
    {
        cout<<infor->P;
        P= P->right;
        return ;
    }
};
void DLDestroy(DLDist &LR)
{
    node* P ;
    while(P)
    {
        P=LR.L;
        LR.L=LR.L->right;
        delete P;
    }

};
void DLSearch(DList &LR)
{
        node *P=LR.L;
        while(P)
        {
            if (P->infor == x)
            {
                return P;
            }
            else P = P->right;
        }
}

Không rõ lỗi gì

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?