劍指offer 03 從尾到頭列印鍊錶

2021-08-25 08:27:45 字數 620 閱讀 8099

題目描述

輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。

思路:(1)建立鍊錶(頭指標,遍歷指標,新節點指標),初始化,讀取鍊錶

(2) 怎麼使用棧:s.top(),s.push(),s.pop()

(3) 怎麼使用 vectora, 插入a.push_back(),訪問可以用a[i]

struct listnode 

};vectorprintlistfromtailtohead(listnode* head)

while(!b.empty())

else

p1=p2; //儲存首位址後 同時把指標的首位址給與儲存位址指標 這樣實現了首指標和儲存位址的指標一致 //需要儲存位址的指標和它內部的指標一致 這樣呼叫next函式才能呼叫到位址 不然沒物件

} p1->next=null; //!!記得將鍊錶尾指標指向null

// 讀取鍊錶

p2= head;

while(p2!=null)

vectortmp = printlistfromtailtohead(head);

for(i=0;ireturn 0;

}

劍指offer 03 從尾到頭列印鍊錶

題目描述 輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。時間限制 c c 1秒,其他語言2秒 空間限制 c c 64m,其他語言128m 題目示例 輸入 返回值 58,24,0,67 解法分析可以使用unshift 方法,將鍊錶從頭到尾加到arr 0 然後返回arr。當然,正序加入a...

劍指offer 03 從尾到頭列印鍊錶

輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。1.存到列表中,直接反向輸出 2.棧的實現 3.遞迴。先進到最裡面一層取出值,再一層一層出來 1.class solution 返回從尾部到頭部的列表值序列,例如 1,2,3 defprintlistfromtailtohead self...

劍指offer 從尾到頭列印列表

1.方法一 看到這道題的時候,我的最初想法是鍊錶翻轉,在輸出。在原書中作者認為這不是最好的解決辦法,因為這樣會改變鍊錶的原來的結構,如果在面試中遇到類似的問題,應該主動詢問面試官這樣的方發是否可行。1.方法二 鍊錶的逆序列印,首先肯定要遍歷鍊錶,可是輸出的順序卻是從尾到頭。也就是說,第乙個遍歷到的節...