如果在排序的链表中插入新节点的位置正确,我提出了以下解决方案。
void SortedInsert(node** headref, node* newnode) {
node* prev = NULL;
node* curr = *headref;
for (; curr; ) {
if (curr->info > newnode->info) {
break;
}
prev = curr;
curr = curr->next;
}
if (!prev) {
newnode->next = *headref;
*headref = newnode;
} else {
newnode->next = prev->next;
prev->next = newnode;
}
}
这是否有效 是否存在任何不适用的边缘情况。有没有更简单的解决方案。
答案 0 :(得分:0)
不要让curr指向您想要插入的节点,而是将curr指向指向您要插入的节点的指针。