题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。
方法1:使用栈
/*
链表节点定义如下:
struct ListNode
{
int _data;
ListNode* _next;
};
*/
void PrintListTailToHead(ListNode* phead)
{
assert(phead);
stack<ListNode*> s;
ListNode* cur = phead;
while (cur)
{
s.push(cur);
cur = cur->_next;
}
while (!s.empty())
{
cout<<s.top()->_data<<" ";
s.pop();
}
cout<<endl;
}
方法2:递归
void PrintListTailToHead(ListNode* phead)
{
if (phead == NULL)
{
return;
}
PrintListTailToHead(phead->_next);
cout<<phead->_data<<" ";
}
转载于:https://blog.51cto.com/zgw285763054/1864303