struct node *insert_list(struct node *head, int num){
    struct node *new_node, *p1, *p2;
    new_node = (struct node*)malloc(sizeof(struct node)); //创建新节点
    new_node->data = num;
    new_node->next = NULL;
    if(head == NULL){ //链表为空,将新节点作为头结点
        head = new_node;
        return head;
    }
    else if(num < head->data){ //新节点比头结点小,将新节点作为头结点
        new_node->next = head;
        head = new_node;
        return head;
    }
    else{ //寻找插入位置
        p1 = head;
        p2 = p1->next;
        while(p2 != NULL && num > p2->data){
            p1 = p2;
            p2 = p2->next;
        }
        p1->next = new_node;
        new_node->next = p2;
        return head;
    }
}
``
有一个链表其每一个结点的定义为: struct node int data; struct node next; ;现已知该链表的头指针head且所有结点的数据已按升序排列。编写一函数struct node insert_liststruct node head int num 将数据num作为一个新结点

原文地址: https://www.cveoy.top/t/topic/g91d 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录