題目描述:輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。
考慮用棧實現,**如下:
/*從尾到頭輸出鍊錶:棧,後進先出*/
#include#include#include#include#includeusing namespace std;
struct listnode
;/*尾部插入法插入節點*/
void add2tail(listnode **head, int value) }
/*刪除鍊錶中的節點*/
void removenode(listnode **head,int value)
else
}if(deleted!=null) }
/*逆向輸出鍊錶元素*/
void printlistreverse(listnode *head)
while(!liststack.empty()) }
/*從頭到尾列印鍊錶元素*/
void printlist(listnode *head)
cout<>n;
cout<<"請輸入鍊錶元素:";
for(int i=0;i>num;
add2tail(&head,num); }
cout<<"您輸入的鍊錶為:";
printlist(head);
cout<<"從尾到頭列印鍊錶為:";
printlistreverse(head);
return 0;
}
從尾到頭列印單鏈表(劍指offer面試題5)
題目 輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值。分析 此題考察單鏈表的理解和應用,為了實現列印,必須先建立乙個單鏈表,頭結點可有可無,但有頭結點和無頭結點在程式設計上是應該注意的,反向列印思路不一樣,這裡以包含頭結點舉例分析,單鏈表以尾部插入方式建立,頭結點資料域為空,頭結點指標指向下...
劍指Offer 面試題5 從尾到頭列印鍊錶
題目 輸入乙個鍊錶的頭結點,從尾到頭反過來列印每個節點的值.分析1 通常,列印是乙個唯讀操作,我們不希望列印的同時去修改原資料的內容.故我們不能改變鍊錶的結構.解決這個問題肯定是需要遍歷鍊錶的,但是遍歷的順序是從頭到尾的,可輸出的順序確實從尾到頭,也就是說第乙個遍歷到的節點最後乙個輸出,最後乙個遍歷...
劍指offer 面試題5 從尾到頭列印鍊錶
題目 輸入乙個鍊錶的頭結點,從尾到頭反過來列印出每個結點的值。public void invertedlist1 listnode head listnode p head stack integer stack new stack integer while p null while stack ...