/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */

/**
 * 
 * @param head ListNode类 the head node
 * @return ListNode类
 */
struct ListNode* sortInList(struct ListNode* head ) {
    // write code here
    
    struct ListNode * tmp = head;
    struct ListNode * p1 = tmp;
    struct ListNode * p2 = p1->next;
    int temp = 0;
    
    if(head == NULL){
        return head;
    }
    
    if(head->next == NULL){
        return head;
    }
    
    for(;p1 != NULL; p1 = p1->next)
    {
        for(p2 = p1->next; p2 != NULL; p2 = p2->next)
        {
            if(p1->val > p2->val)
            {
                temp = p1->val;
                p1->val = p2->val;
                p2->val = temp;
            }
            
        }
    }
    
return head;
}