public ListNode sortList(ListNode head) {
ListNode headpre=new ListNode();
headpre.next=head;
int length=0;
while(head!=null){
head=head.next;
length++;
}
//冒泡
for(int i=1;i<length;i++){
int j=0;
ListNode p0=headpre;
ListNode p1=p0.next;
ListNode p2=p1.next;
while(p2!=null){
reverse(p0,p1,p2);
if(j==0){
headpre.next=p0.next;
}
j++;
p0=p0.next;
p1=p0.next;
p2=p1.next;
}
}
return headpre.next;
}
//三指针排序
public void reverse(ListNode p0,ListNode p1,ListNode p2){
if(p1.val>p2.val){
p0.next=p2;
p1.next=p2.next;
p2.next=p1;
}
}
标签:p2,head,ListNode,冒泡排序,next,链表
From: https://www.cnblogs.com/sjj123/p/16618148.html