1 /*编写一算法,将链表中数据域值最小的结点移到链表的最前面。要求不能申请新结点*/ 2 /* 3 算法思想:找到最小值结点,及其前驱,然后通过修改指针域达到要求 4 */ 5 void MoveMinToFirst(LinkList& L) 6 { 7 LNode *pre = L, *p = L->next; 8 LNode *premin = pre, *min = p; 9 while (p) 10 { 11 if (min->data > p->data) 12 { 13 premin = pre; 14 min = p; 15 } 16 pre = p; 17 p = p->next; 18 } 19 premin->next = min->next; 20 min->next = L->next; 21 L->next = min; 22 }