数据结构/链表排序TT

请问如何实现在这个排序函数里加一个遍历然后直接输出排序后的结果,但是在主菜单里的输出是没有排序后、也就是输出原来的图书信息呢?

Status SortTheList2(LinkList& Q)//链表降序
{
    int i, count=0,num;//num进行内层循环
    QNode* p, * q, * tail;//创建三个指针进行冒泡排序
    p = Q;
    while (p->next != NULL)//计算节点个数
    {
        count++;
        p = p->next;
    }

    for (i = 0; i < length - 1; i++)//外层循环
    {
        num = length - i - 1;//记录内层循环次数
        q = Q->next;//令q指向第一个节点
        p = q->next;//令p指向后一个节点
        tail = Q;//让tail始终指向q的前一个节点,方便交换
        while (num--)
        {
            if (q->data.price > p->data.price)
            {
                q->next = p->next;
                p->next = q;
                tail->next = p;//交换节点
            }
            tail = tail -> next;//没有此步操作会很容易重复循环
            q = tail->next;
            p = q->next;
        }
    }
    return OK;
}

新建一个链表用来存排序后的,然后将排序的链表通过函数返回,原来的链表不动。