编写一算法,将链表中数据域值最小的结点移到链表的最前面。要求不能申请新结点*
算法思想:找到最小值结点,及其前驱,然后通过修改指针域达到要求
void MoveMinToFirst(LinkList& L)
{
LNode *pre = L, *p = L->next;
LNode *premin = pre, *min = p;
while (p)
{
if (min->data > p->data)
{
premin = pre;
min = p;
}
pre = p;
p = p->next;
}
premin->next = min->next;
min->next = L->next;
L->next = min;
}
12-26
05-22
814