ClearLis()t里面的問題
函數(shù)里面定義的Node *currentNode=m_pList->next;
在while循環(huán)中為什么定義的Node *temp=current->next中current->next會是下一個節(jié)點(diǎn)?
函數(shù)里面定義的Node *currentNode=m_pList->next;
在while循環(huán)中為什么定義的Node *temp=current->next中current->next會是下一個節(jié)點(diǎn)?
2018-04-24
舉報
2018-04-26
清空一個鏈表應(yīng)該是把它的每個結(jié)點(diǎn)所占的內(nèi)存全部進(jìn)行清空,所以要從前往后遍歷,每遍歷一個結(jié)點(diǎn),就把遍歷過的結(jié)點(diǎn)進(jìn)行刪除,但是呢,在刪除當(dāng)前結(jié)點(diǎn)之前,要將當(dāng)前結(jié)點(diǎn)的下一個結(jié)點(diǎn)保存起來,不然刪除之后就找不到下一個結(jié)點(diǎn)來進(jìn)行清空了,所以要使用temp來保存當(dāng)前結(jié)點(diǎn)的下一個結(jié)點(diǎn)Node *temp=currentNode->next(currentNode結(jié)點(diǎn)的指針域指向的就是下一個結(jié)點(diǎn),就是currentNode->next就是下一個結(jié)點(diǎn)),保存之后呢,再把當(dāng)前結(jié)點(diǎn)刪除掉也就是delete?currentNode,最后再把當(dāng)前結(jié)點(diǎn)的下一個節(jié)點(diǎn)賦值給當(dāng)前結(jié)點(diǎn),從而保證能夠繼續(xù)往后進(jìn)行遍歷。