0
void ins_after(struct node *node, struct node *new_node)
{
    new_node -> next = node -> next; 
    node -> next = new_node; 
    new_node -> next -> prev = new_node;
    new_node -> prev = node;
}

当我尝试将节点插入双重列表时,上面的代码给出了段错误。知道为什么吗?=/

4

2 回答 2

2

您必须NULL检查指针,考虑如果 位于node列表的开头或结尾会发生什么情况,这在通过重复追加构建列表时经常发生。

“孤独”列表项通常同时具有prevnext等于NULL

于 2013-02-04T16:00:10.120 回答
0

当您的列表包含时处理条件

  1. 什么都没有(当节点是NULL
  2. 只有一个节点,其中节点prevnext指向NULL
于 2013-02-04T16:20:47.703 回答