这里的思想是采用的冒泡排序,先用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; } }