麻烦看下,链表的题目解决办法

麻烦看下,链表的题目
题目是这样的,编写一个函数,将给定链表中的最大项移到链表的末尾
我的代码是这样的,但是总是出不来结果
C/C++ code

#include<stdio.h>
#include<stdlib.h>
typedef struct node* link;
struct node{
  int item;
  link next;
}head;

void getMaxToLast(link t){
  link k=t,k1=t;
  link maxt,t2;
  int max=t->item;
  while(k!=NULL){
    t2=k;
    k=k->next;
    if(k->item>max){
      maxt=k;
      max=k->item;
    }
  }
  t2->next=maxt->next;
  while(k1->next!=NULL)
    k1=k1->next;
  k1->next=maxt;
  maxt->next=NULL;
}
int main(){
  int i,N;
  scanf("%d",&N);
  link t,x=&head;
  for(i=1,t=x;i<=10;i++){
    t->next=malloc(sizeof *t);
    t=t->next;
    t->next=NULL;
    t->item=rand()%100;
  }

  while(x!=NULL){
    printf("%d ",x->item);
    x=x->next;
  }
  x=&head;
  getMaxToLast(x);

  //x=&head;
  while(x!=NULL){
    printf("%d ",x->item);
    x=x->next;
  }
  return 0;
}


------解决方案--------------------
大概改了下,lz参考下。
C/C++ code

void getMaxToLast(link t){
    link k=t,k1=t;
    link maxt,t2;
    int max=t->item;
    while(k->next!=NULL){
        if(k->next->item>max){
            maxt=k->next;
            max=k->next->item;
            t2 = k;
        }
        k = k->next;
    }
    t2->next=maxt->next;
    while(k1->next!=NULL)
        k1=k1->next;
    k1->next=maxt;
    maxt->next=NULL;
}

------解决方案--------------------
void getMaxToLast(link t){
link k=t,k1=t;
link maxt,t2;
int max=t->item;
if(k->next==NULL)
return;
while(k->next!=NULL){
if(k->next->item>max){
maxt=k->next;
max=k->next->item;
t2 = k;
}
k = k->next;
}
t2->next=maxt->next;
k->next=maxt;
maxt->next=NULL;
}

不需要第二个while再找一次链表的结尾了
k就是最后一个,直接挂上就好
------解决方案--------------------
C/C++ code

void getMaxToLast(link t){
    link k=t,k1=t;
    link maxt,t2;
    int max=t->item;
    while(k!=NULL){
        t2=k;
        
        if(k->item>max){
            maxt=k;
            max=k->item;
        }
        k=k->next;
    }
    //t2->next=maxt->next;
    //while(k1->next!=NULL)
    //    k1=k1->next;
//    k1->next=maxt;
//    maxt->next=NULL;
    maxt->item = t2->item;
    t2->item = max;
}