亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于DeleteNode的一些疑問

void DeleteNode(){

if (this->pLChild != NULL){

this->pLChild->DeleteNode();

}

if (this->pRChild != NULL){

this->pRChild->DeleteNode();

}

if (this->pParent != NULL){

if (this->pParent->pLChild == this){

this==NULL;

}

if (this->pParent->pRChild == this){

this == NULL;

}

}

delete this;

}

//第三步的父節點判空? 完全可以改成這樣啊

if (this->pParent != NULL){

this == NULL;

}



正在回答

5 回答

this = NULL與this->pParent->pLChild != NULL發生沖突,相當于this->pParent->pLChild指向了空指針,發生異常

0 回復 有任何疑惑可以回復我~

好問題

0 回復 有任何疑惑可以回復我~

這樣是有問題的,本來只刪除左節點(該節點父節點的左節點),這樣會將右節點也一起刪除的!

0 回復 有任何疑惑可以回復我~

代碼被吞了花括號里邊是

this->pParent->pLChild = NULL;

pRChild同理

0 回復 有任何疑惑可以回復我~

首先你上面那段代碼就不是老師的源碼,老師那一部分的代碼是

if(this->pParent?!=?NULL)
{
????if(this->pParent->pLChild?==?this)}

其次this == NULL;這個語句就很令人費解,我姑且先認為是this = NULL;,現在的目的是把父節點中的pLChild或pRChild的“數據”改為NULL,那你把自己的指針變為空干嗎?父節點的Child指針還是指向該節點啊,難道還會跟著變嗎?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于DeleteNode的一些疑問

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號