#include<iostream>
#include<string>
using namespace std;

struct Node
{
	int val;
	Node *next;
};

Node *head = NULL;

void insertHead(int val)
{
	Node *newNode = new Node;
	newNode->val = val;
	newNode->next = head;
	head = newNode;
}
void printList(Node *head)
{

	if(head != NULL) {
		while( head != NULL )
		{
			cout << head->val << "  ";
			head = head->next;
		}
		cout << endl;
	}
}

void BubbleList(Node *head) {

	if(head != NULL) {
		Node* previous;
		Node* first;
		Node* second;

		bool swapped = true;
		while(swapped) {
			previous = NULL;
			first = head;
			second = head->next;
			while(second != NULL) {
				if( first->val > second->val) { //trzeba zamienic
					previous->next = second;
					first->next = second->next;
					second->next = first;
				}
				else
					swapped  = false;
				previous = first;
				first = second;
				second = second->next;
				}
		}
	}
}


int main()
{
	insertHead(2);
	insertHead(3);
	insertHead(4);
	insertHead(5);

	printList(head);

	BubbleList(head);

	printList(head);

	return 0;
}
 

Witam, chce napisac sortowanie bąbelkowe listy. Tyle stworzyłem do tej pory. cos jednak nie działa. Mogłby ktoś wskazać bład?