输入一个链表的头节点,从尾到头反过来打印出每个节点的值。链表节点定义如下:
struct ListNode
{
int value;
ListNode* pNext;
};
答案:
void PrintListReversely_Iterative(ListNode *pHead)
{
if (pHead == nullptr) return;
stack<int> vals;
auto pTempNode = pHead;
while (pTempNode != nullptr)
{
vals.push(pTempNode->value);
pTempNode = pTempNode->pNext;
}
while (!vals.empty())
{
cout << vals.top() << '\t';
vals.pop();
}
}
void PrintListReversely_Recursive(ListNode *pHead)
{
if (pHead != nullptr)
{
if (pHead->pNext != nullptr)
{
PrintListReversely_Recursive(pHead->pNext);
}
cout << pHead->value << '\t';
}
}
网友评论