面试题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 }

 

posted @ 2015-06-30 17:02  Rosanne  阅读(156)  评论(0编辑  收藏  举报