題目描述:輸入一個(gè)鏈表的頭結(jié)點(diǎn),從尾到頭反過來打印出每個(gè)節(jié)點(diǎn)的值
目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、望城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
鏈表的節(jié)點(diǎn)定義如下:
struct ListNode { int m_nValue; ListNode* m_pNext; };
分析:
一般情況下,遇到這種問題,首先應(yīng)該問清楚面試官是否可以改變?cè)械逆湵斫Y(jié)構(gòu),自己再做分析。
void PrintListReversingly_Iteratively(ListNode* pHead) { std::stack<ListNode*> nodes; ListNode* pNode = pHead; while(pNode != NULL) { nodes.push(pNode); pNode = pNode->m_pNext; } while(!nodes.empty()) { pNode = nodes.top(); printf("%d\t", pNode->m_nValue); nodes.pop(); } }
void PrintListReversingly_Recursively(ListNode* pHead) { if(pHead != NULL) { if (pHead->m_pNext != NULL) { PrintListReversingly_Recursively(pHead->m_pNext); } printf("%d\t", pHead->m_nValue); } }
說明:用遞歸的代碼看起來很簡(jiǎn)潔,但是如果一個(gè)鏈表非常長(zhǎng),于是遞歸調(diào)用的深度越深,就有可能導(dǎo)致棧溢出,因此利用循環(huán)實(shí)現(xiàn)的代碼的魯棒性(健壯性)會(huì)更好些。
文章題目:從尾到頭打印單鏈表
文章源于:http://m.kartarina.com/article2/jecsoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、建站公司、動(dòng)態(tài)網(wǎng)站、App開發(fā)、網(wǎng)站營(yíng)銷、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)