这里的思想是采用的冒泡排序,先用while循环测出数组长度,再用双指针来循环冒泡排序,交换值
冒泡排序:先用第一个数和其他的数比较的到最小的或最大的放在第一位,然后循环此操作,直至结束
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类 the head node
* @return ListNode类
*/
public ListNode sortInList (ListNode head) {
// write code here
ListNode temp=head;
int size=1;
while (temp!=null){//测出链表长度,因为temp等于head,所以size初始值为1
size++;
temp=temp.next;
}
temp=head;
for (int i = 1; i < size; i++) {
ListNode temp1=temp.next;//第二个指针永远在第一个的后面
for (int j = i + 1; j < size; j++) {//第一个与第二个比较,如果第一个大于第二个则交换值,然后与第三个比较,如此循环得到最小的,然后用第二个数同理比较得到第二小的,直至结束.
int change;
if (temp.val>temp1.val){
change=temp.val;
temp.val=temp1.val;
temp1.val=change;
}
temp1=temp1.next;
}
temp=temp.next;
}
return head;
}
} 
京公网安备 11010502036488号