题目:
输入一个链表的头节点,从尾到头反过来打印出每个节点的值。
解法一:
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 << " ";
}