題目:
輸入一個鏈表的頭節(jié)點,從尾到頭反過來打印出每個節(jié)點的值。
解法一:
struct ListNode {
int num;
ListNode* next;
}
void printListReverse(ListNode* pHead) {
stack<ListNode*> s;
ListNode* pNode = pHead;
while (pNode) {
s.push(pNode);
pNode = pNode->next;
}
while (!s.empty()) {
pNode = s.top();
cout << pNode->num << " ";
s.pop();
}
cout << endl;
}
解法二:
void printListReverseRecursive(ListNode* pHead) {
if (pHead == 0) return;
if (pHead) {
printListReverseRecursive(pHead->next);
}
cout << pHead->num << " ";
}