從尾到頭打印鏈表

直接上代碼。

#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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章