10.1.7二叉樹-刪除節(jié)點
內(nèi)容來自尚硅谷Java數(shù)據(jù)結(jié)構(gòu)與java算法(Java數(shù)據(jù)結(jié)構(gòu)與算法)_嗶哩嗶哩_bilibili
寫在前面:本文內(nèi)容大致和原視頻內(nèi)老師的筆記內(nèi)容相同,會偶爾插入自己的注釋和理解,盡量會完成作業(yè)
本次作業(yè)未完成...
10.1.7二叉樹-刪除節(jié)點
要求
1.如果刪除的節(jié)點是葉子節(jié)點,則刪除該節(jié)點
2.如果刪除的是非葉子節(jié)點,則刪除整個子樹
3.測試刪除5號節(jié)點和3號子樹
4.完成刪除的思路分析

5.代碼實現(xiàn)
作業(yè)
思考題:
1.????? 如果要刪除的節(jié)點是非葉子節(jié)點,現(xiàn)在我們不希望將該非葉子節(jié)點為根節(jié)點的子樹刪除,需要指定規(guī)則,假如規(guī)定如下:
2.????? 如果該非葉子節(jié)點A只有一個子節(jié)點B,則子節(jié)點B替代節(jié)點A
3.????? 如果該非葉子節(jié)點A有左子節(jié)點B和右子節(jié)點c,則讓左子節(jié)點B替代節(jié)點A。請大家思考,如何完成該刪除功能,老師給出提示.(課后練習(xí))
以我目前的水平,暫時只能寫到這里了,我知道我的代碼肯定是不完善的,并沒有完全符合老師的需求的邏輯,甚至可以說完全不符合老師的需求的邏輯,因為我只實現(xiàn)了一層向下驗證的邏輯,舉個簡單的例子,假如關(guān)勝下面還有一左一右2個節(jié)點,那我把關(guān)勝這個節(jié)點置空的操作其實還是相當(dāng)于把子樹給刪掉了,所以我這一段代碼不具有參考價值,不建議看。
先繼續(xù)往下學(xué)吧...
代碼
想想還是發(fā)出來吧,用來提醒自己這題沒做出來