给定一个节点数为n的无序单链表,对其按升序排序。
数据范围:0<n≤100000
要求:时间复杂度 O(nlogn)
示例1
输入:{1,3,2,4,5}
返回值:{1,2,3,4,5}
示例2
输入:{-1,0,-2}
返回值:{-2,-1,0}
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param head ListNode类 the head node
* @return ListNode类
*/
struct ListNode* sortInList(struct ListNode* head ) {
// write code here
struct ListNode *p1 ,*p2,*p3;
int b;
for(p1=head;p1!=NULL;p1=p1->next)
for(p2=p1;p2!=NULL;p2=p2->next)
{if(p1->val>p2->val){
b=p2->val;
p2->val=p1->val;
p1->val=b;}
}
return head;
}