面试题5:从尾到头打印链表
题目:输入一个链表的头结点,从尾到头反过来打印链表。
链表结点定义如下:
struct ListNode { int val; ListNode* m_pNext; };
思路:利用栈
1 void printListReverse(ListNode* pHead) 2 { 3 stack<ListNode*>s; 4 ListNode* p = pHead; 5 while (p) 6 { 7 s.push(p); 8 p = p->next; 9 } 10 while (!s.empty()) 11 { 12 p = s.top(); 13 cout << p->val; 14 s.pop(); 15 } 16 }