有趣的面試題 1-1 單向鏈表
已知內(nèi)存中存在一個(gè)單向鏈表,表示方法為 1 2 3 .... n
現(xiàn)在只給你一個(gè) 節(jié)點(diǎn)m , 只知道節(jié)點(diǎn)m一定在這個(gè)單向鏈表上
要求是刪除節(jié)點(diǎn)m
不知道單向鏈表的起點(diǎn)在哪里
常規(guī)思路,是找到m的前一個(gè)節(jié)點(diǎn) m-1,然后將 m-1 指向m的下一個(gè)數(shù)據(jù) m+1 ,
但是這里的問題是, 這是一個(gè)單向鏈表,
根據(jù)m根本無法查到 m-1
所以要換一種思路思考
所謂的刪除操作可以換一種方式來做,
知道m(xù) 那么就知道m(xù)+1 m+2....n
那么將m+1的值拷貝到 m ,將m的下一個(gè)元素指向m+2
那么在內(nèi)容上就刪除了m這個(gè)節(jié)點(diǎn)
當(dāng)然這個(gè)刪除是不完美的
他最大的難度是要開闊你的思路,不要老是局限于已經(jīng)有的知識(shí),
先嘗試解決問題,再解決實(shí)際應(yīng)用中引發(fā)的問題
PS1:如果存在外部數(shù)據(jù)指向m+1的地址 這個(gè)時(shí)候會(huì)有問題
PS2:如果正好是最后一個(gè)節(jié)點(diǎn)就over了
如果還有其他的問題 請(qǐng)大家補(bǔ)充
posted on 2010-11-15 14:06 聽說讀寫 閱讀(593) 評(píng)論(3) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)