在一个已排序的循环链表中插入节点

来源:互联网 发布:easybcd引导linux失败 编辑:程序博客网 时间:2024/05/17 01:11

这个比较简单,直接上代码了

typedef struct ListNode{    int data;    ListNode *next;}ListNode;void sortedInsertNode(ListNode *head,ListNode *newNode){     ListNode *cur=head;//把头结点设置为当前节点     //case 1: 该链表为空     if(cur==NULL)     {         newNode->next=newNode;         head=newNode;     }     //case 2:将新加入的节点插入到头结点前面     else if(cur->data>=newNode->data)     {         while(cur->next!=head)         {             cur=cur->next;             cur->next=newNode;             newNode->next=head;             head=newNode;//插入节点成了新的头结点         }     }     //case 3: 把新节点插入到某个结点的后面     else     {         if(cur->next!=head && cur->next->data<newNode->data)         {             cur=cur->next;             newNode->next=cur->next;             cur->next=newNode;         }     }}
1 0