排序在链表中插入

时间:2011-04-01 19:59:55

标签: linked-list

如果在排序的链表中插入新节点的位置正确,我提出了以下解决方案。

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;
  }
}

这是否有效 是否存在任何不适用的边缘情况。有没有更简单的解决方案。

1 个答案:

答案 0 :(得分:0)

不要让curr指向您想要插入的节点,而是将curr指向指向您要插入的节点的指针。