您的位置:首页 > 其它

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

2017-05-12 14:40 267 查看
这个比较简单,直接上代码了

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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐