/*面试题5:
题目:输入一个链表的头结点,从尾到头打印出每个节点的值。
遍历的顺序从头到尾,打印的顺序从尾到头,这是一个典型的“先进后出”,可以用栈实现这种顺序。
*/
void PrintListReversingly(ListNode* pHead)
{
stack<ListNode*> nodes;
ListNode* pNode = pHead;
while(pNode != NULL)
{
nodes.push(pNode);
pNode=pNode->m_pNext;
}
while(!nodes.empty())
{
pNode=nodes.top();
cout<<pNode->m_nValue<<" ";
nodes.pop();
}
cout<<endl;
}
/*测试用例包括:链表中有多个节点,一个节点,头指针为空指针。*/
题目:输入一个链表的头结点,从尾到头打印出每个节点的值。
遍历的顺序从头到尾,打印的顺序从尾到头,这是一个典型的“先进后出”,可以用栈实现这种顺序。
*/
void PrintListReversingly(ListNode* pHead)
{
stack<ListNode*> nodes;
ListNode* pNode = pHead;
while(pNode != NULL)
{
nodes.push(pNode);
pNode=pNode->m_pNext;
}
while(!nodes.empty())
{
pNode=nodes.top();
cout<<pNode->m_nValue<<" ";
nodes.pop();
}
cout<<endl;
}
/*测试用例包括:链表中有多个节点,一个节点,头指针为空指针。*/