Cho e hỏi là khi e viết DSLK đơn thì lại bị lỗi vòng lặp vậy ạ?

#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;

struct Node
{
	int Data;
	Node *pNext;
};

typedef struct Node NODE;

struct List
{
	NODE *pHead;
	NODE *pTail;
};

typedef struct List LIST;

void Init(LIST &l)
{
	l.pHead = l.pTail = NULL;
}

NODE *GetNode(int x)
{
	NODE *p = new NODE;
	if (p == NULL)
	{
		return NULL;

	}
	p->Data = x;
	p->pNext = NULL;
	return p;

}
void AddHead(LIST &l, NODE *p)
{
	if (l.pHead == NULL)
	{

		l.pHead = l.pTail = p;
		p->pNext = NULL;
	}
	else
	{
		p->pNext = l.pHead;
		l.pHead = p;
	}
}

void AddTail(LIST &l, NODE *p)
{
	if (l.pHead == NULL)
	{
		l.pHead = l.pTail = p;
	}
	else
	{
		l.pTail->pNext = p;
		l.pTail = p;
	}
}

void Input(LIST &l)
{
	int n;
	cout << "Nhap vao so Node: ";
	cin >> n;
	Init(l);
	for (int i = 0; i < n; i++)
	{
		int x;
		cout << "\n Nhap vao Data: ";
		cin >> x;
		NODE *p = GetNode(x);
		AddTail(l, p);
	}
}

void OutPut(LIST l)
{
	for (NODE *p = l.pHead; p != NULL; p->pNext)
	{
		cout << "\t" << p->Data;
	}
}

int main()
{
	LIST l;
	Input(l);
	OutPut(l);
	_getch();
	return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?