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