Hello everyone, I'm new on this forum and I have problem with my code. I'm learning C and want to use bubble sort to sort my doubly linked list. Here is my code:
Code:
struct node {                
     unsigned int key;
     struct node *left;
     struct node *right;
            };

void sort(int count, struct node *t_node)
{
    struct node *tmp,*nextnode, *node1, *node2;


    for(node1 = t_node;node1->right != NULL ;node1 = node1->right) {
        for(node2 = node1; node2->right != NULL; node2 = node2->right) {
    
            if(node2->key > node2->right->key)
            {            
                
                // B = node2
                nextnode = node2->right; // C
                tmp = node2->left; // A 
                
                if (tmp) 
                    tmp->right = nextnode; // A->right = C
                
                if (nextnode->right)
                    nextnode->right->left = node2; //D->left = B
                node2->right = nextnode->right; //B->right = D
                node2->left = nextnode->left; //B->left = C
                nextnode->right = node2; //C->right = B
                nextnode->left = tmp; //C->left = A
            }
        }
    }
    
}
When I have for example 4 nodes, with data:

Node value: 255
Node value: 24
Node value: 7
Node value: 36

After using sort function I have:

Node value: 255
Node value: 7
Node value: 24
Node value: 36

Where is the problem I don't have idea. Please help me, thanks.