直接上代碼。
#include<iostream>
using namespace std;
//鏈表節點
struct LinkNode
{
int value;
LinkNode* next;
};
//從尾到頭打印鏈表值----------使用了遞歸的方法
void printLinkReverse(LinkNode* head)
{
if (head != NULL)
{
if (head->next != NULL)
printLinkReverse(head->next);
cout << head->value << endl;
}
}
//從頭到尾打印值
void printLinkByOrder(LinkNode* head)
{
while (head != NULL)
{
cout << head->value << endl;
head = head->next;
}
}
//添加結點到鏈表尾部
void addNode(LinkNode** head, int value)
{
if (head == NULL) return;
LinkNode* pNew = new LinkNode;
pNew->next = NULL;
pNew->value = value;
if (*head == NULL)
{
*head = pNew;
}
else
{
LinkNode* tempNode = *head;
while (tempNode->next != NULL)
tempNode = tempNode->next;
tempNode->next = pNew;
}
}
int main()
{
LinkNode* head = new LinkNode;
head->next = NULL;
head->value = 0;
addNode(&head, 1);
addNode(&head, 2);
addNode(&head, 3);
addNode(&head, 4);
addNode(&head, 5);
printLinkByOrder(head);
printLinkReverse(head);
system("pause");
return 0;
}