题目:输入一个链表的头结点 从尾到头反过来打印出每个结点的值
struct ListNode
{
int m_nKey;
ListNode *m_pNext;
}
从头到尾遍历链表 然后将遍历结果压入栈 最后弹出栈的顺序即为从尾到头遍历顺序
while(p!=NULL)
{
s.push(p);
p=p->m_pNext;
}
while(s.size())
{
cout<<s.top()->m_nKey<<' ';
s.pop();
}假设链表结点为1-2-3-4-5
打印1时 1后面的结点应当已被打印 打印2时 2后面的结点已被打印
因此可以递归打印
void printlist(ListNode *p)
{
if(p!=NULL)
{
if(p->m_pNext!=NULL)
printlist(p->m_pNext);
cout<<p->m_nKey<<' ';
}
}
443

被折叠的 条评论
为什么被折叠?



