2015-04-25 60 views
-3

我有一个动态列表,其中a是当前点,a-> prev - previous元素,a-> next - 下一个元素,我需要删除列表中的一个元素(并设置前一个/下一个相邻元素彼此)从动态列表中删除元素

if(a->va == var && a->pa == pav){ 
     a -> prev -> next = a -> next; 
     a -> next -> prev = a -> prev; 
     delete a; 
    } 
+2

你需要更好地描述你的问题。 *它不像这样工作*不是有用的诊断。 –

+0

我需要删除列表中的1个元素 – user2921071

+3

@ user2921071请咨询[我如何问一个好问题?](https://stackoverflow.com/help/how-to-ask)和[如何创建一个最小,完整和可验证示例](https://stackoverflow.com/help/mcve) –

回答

0

您必须处理边缘情况。

如果找到的元素是列表中的第一个元素,则a -> prev为NULL。

同样,如果它是最后一个,a -> next是NULL。

+0

您如何知道没有前哨节点? –

+0

谢谢,但它仍然不起作用 – user2921071

+0

我不......但它看起来是一个很好的假设给我。 –