双向链表中删除所有匹配元素
摘要:
今天又复习双向链表,其中比较有意思的一部分代码就是删除所有匹配元素。 在复习的过程中,我看到一处代码,有些疑惑,后来细看才发现奥秘。如果元素是头节点,在删除头节点之后,为什么不将新的头节点的前指针置为空,如果元素是尾节点,在删除尾节点之后,为什么不将新的尾节点的后指针置为空?后来细看才发现,这样的工作是在另一个if分支(第7行、第13行)中处理的。 1 // 删除所有匹配元素 2 void remove (const T& data) { 3 for (node* p = m_head, *next; p; p = next) { //遍历 4 ... 阅读全文
posted @ 2013-10-27 23:44 4IT 阅读(263) 评论(0) 推荐(0)
浙公网安备 33010602011771号