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) { if (head == null) { return head; } ListNode curNode = head; int tempNodeVal = 0; while (curNode != null) { //当前节点的下一个节点,因为要从当前节点的后一节点开始 循环遍历出小于temp的 然后和首位置节点的val交换 /** * 内重循环从当前节点的下一个节点循环到尾节点, * 找到和外重循环的值比较最小的那个,然后与外重循环进行交换 */ ListNode nextNode = curNode.next; //从nextNode节点开始循环遍历出 后续节点中最小的那个节点的val while (nextNode != null) { //每次循环以curNode的val作为链表最小值进行比较 if (curNode.val > nextNode.val) { tempNodeVal = curNode.val; curNode.val = nextNode.val; nextNode.val = tempNodeVal; } nextNode = nextNode.next; } curNode = curNode.next; } return head; } }