关键代码:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
//法一使用栈的方法
void PrintListReversingly_Iteratively(ListNode* pHead)
{
std::stack<ListNode*> nodes;
ListNode* pNode = pHaed;
while(pNode!=NULL)
{
nodes.push(pNode);
pNode = pNode->m_pNext;
}
while(!nodes.empty())
{
pNode = nodes.top;
cout << pNode->m_nKey << " ";
nodes.pop();
}
}
//法二使用递归的方法
//如果链表长度很长,那么存在递归深度过大的问题
void PrintListReversingly_Recursively(ListNode* pHead)
{
if(pHead!=NULL)
{
if(pHead->m_pNext == NULL)
{
cout << pHead->m_nKey << " ";
}
else
{
PrintListReversingly_Recursively(pHead->m_pNext);
}
}
}