链表排序问题!

编写一个函数 对任意的输入顺序 链表中的每个节点内容按照递增有序排列,结点 定义如下:struct node{ int num; struct *next;};
2026年09月25日 06:07
有1个网友回答
网友(1):

node *head=new node;//定义一个头结点;
head->num=0;
head->next=null;
void AddNode(node *m_node){
node *temp;
if(head->next==null){
head->next=m_node;//只有头结点,链上去;
}
else{ //链表已经有元素了
temp=head;
while(temp->next!=null){ //遍历链表
if(temp->next->num > m_node->num){ //找到比它大的结点,插在它前面
node * p; p=temp->next; temp->next=m_node; m_node->next=p;//插入
break;
}
else temp=temp->next; //向后移动指针
}
if(temp->next == null){
temp->next=m_node; m_node->next=null;}//说明它是最大的,放到队尾
}
}

我没有调试,你能看明白就好了,大概意思