我在使用双链表时遇到问题:我无法通过另一个节点从节点获取数据。这样:节点->上一个->上一个。但node->prev 没问题。 有人知道为什么吗?
代码:
/*Add value - right side*/
void addListRight(doubleList *node, int value)
{
doubleList *newNode;
newNode = createList();
newNode->val = value;
newNode->right = node->right;
newNode->left = node;
node->right->left = newNode; /*<-Error start here - 'segmentation error' or something like this*/
node->right = newNode;
}
使用Google,我发现有些人这样写():(node->right)->right。我试过了,但结果是一样的。
使用 GCC/Ubuntu 10.10
*我想说“->”的正确单词,但我不知道用英语怎么说。我的错..对不起!这个问题的标签也是如此!
最佳答案
在使用这样的指针之前应该检查 NULL。列表的开头不会有上一个。
关于c - C 中的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847076/