《剑指Offer—— 06. 从尾到头打印链表》代码
Posted 穿迷彩服的鲨鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《剑指Offer—— 06. 从尾到头打印链表》代码相关的知识,希望对你有一定的参考价值。
从尾到头打印链表
前言
//==================================================================
// 《剑指Offer—— 06. 从尾到头打印链表》代码
// 输入一个链表的头节点,从尾到头反过来返回每个节点的值。
//==================================================================
一、示例
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
二、代码解析
1.新建.cpp文件
代码如下(示例):
//==================================================================
// 《剑指Offer—— 06. 从尾到头打印链表》代码
// 输入一个链表的头节点,从尾到头反过来返回每个节点的值。
//==================================================================
#include<iostream>
#include<stack>
#include<vector>
using namespace std;
struct ListNode
{
int val;
ListNode* next;
};
class Solution
{
public:
//==================================================================
// 《数组》
//==================================================================
vector<int> reversePrint(ListNode* head)
{
ListNode* p = head;
vector<int> nums;
vector<int> arr;
while (p != NULL)
{
nums.push_back(p->val);
p = p->next;
}
for (int i = nums.size() - 1; i >= 0; --i)
{
arr.push_back(nums[i]);
}
return arr;
}
//==================================================================
// 《栈》
//==================================================================
void PrintListPeversingly_Iteratively(ListNode* pHead)
{
stack<ListNode*> nodes;
ListNode* pNode = pHead;
while (pNode != NULL)
{
nodes.push(pNode);
pNode = pNode->next;
}
while (!nodes.empty())
{
pNode = nodes.top();
printf("%d\\t", pNode->val);
nodes.pop();
}
}
//==================================================================
// 《递归》
//==================================================================
void PrintListPeversingly_Recursively(ListNode* pHead)
{
if (pHead != NULL)
{
if (pHead->next != NULL)
{
PrintListPeversingly_Recursively(pHead->next);
}
printf("%d\\t", pHead->val);
}
}
};
int main()
{
return 0;
}
以上是关于《剑指Offer—— 06. 从尾到头打印链表》代码的主要内容,如果未能解决你的问题,请参考以下文章