劍指offer——從尾到頭打印鏈表

文章大綱:
1.題目簡(jiǎn)介
2.重點(diǎn)分析
3.知識(shí)拓展

1.題目簡(jiǎn)介

輸入一個(gè)鏈表的頭結(jié)點(diǎn),從尾到頭反過(guò)來(lái)打印出每個(gè)節(jié)點(diǎn)的值

2.重點(diǎn)分析

書(shū)上說(shuō)除了函數(shù),pHead仍然是空指針??抢锇阎羔槷?dāng)參數(shù)直接傳進(jìn)去,是改變不了指針的。還會(huì)造成問(wèn)題。
下面幫助理解和分析



指針的指針圖解


那么怎么辦?

兩種方法:1.指針的指針 2.指針的引用

指針的指針做法

這里注意 要初始化一個(gè)指針為空,而不是初始化一個(gè)指針的指針為空。
我一開(kāi)始以為,參數(shù)那里是兩顆星,那我這里也應(yīng)該是初始化**(too young)
然后在傳入?yún)?shù)的時(shí)候是傳入指針的地址進(jìn)去。&

指針的引用做法

這兩者的寫法區(qū)別不大,指針的引用就不用加&取地址符了,同時(shí)函數(shù)里面就是把pHead前面的*都去掉即可。

這兩種方法哪種更有優(yōu)勢(shì)呢?
我去網(wǎng)上查閱資料的時(shí)候,看到是說(shuō)指引的引用更好。
然后我做了一個(gè)測(cè)試,果然,用指針的指針還是會(huì)多浪費(fèi)一個(gè)內(nèi)存出來(lái)。
而用引用則一直在修改原來(lái)的對(duì)象,始終如一。

3.知識(shí)拓展
在使用返回值時(shí),千萬(wàn)別返回指向“棧內(nèi)存”的指針、引用,因?yàn)樵搩?nèi)存在函數(shù)結(jié)束時(shí)自動(dòng)消亡了,返回的指針是個(gè)野指針了。例如


在函數(shù)中不定義數(shù)組,定義指針,示例:

此時(shí)的程序是正確的,但是有一點(diǎn),此時(shí)分配的內(nèi)存處于靜態(tài)區(qū),是只可以讀取但是不可以修改的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目描述 輸入一個(gè)鏈表,從尾到頭打印鏈表每個(gè)節(jié)點(diǎn)的值。 思路 總共有五種方法,如下: 將原鏈表的值存在一個(gè)棧中,然...
    云胡同學(xué)閱讀 469評(píng)論 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,655評(píng)論 1 51
  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽(tīng)過(guò)Nginx?那么一定聽(tīng)過(guò)它的“同行”Apache吧!Ngi...
    JokerW閱讀 33,000評(píng)論 24 1,002
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景。SDWebImage的原...
    LZM輪回閱讀 2,108評(píng)論 0 12
  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,708評(píng)論 0 1

友情鏈接更多精彩內(nèi)容