大致思路:规定使用插入排序。使用常规插入排序即可,过程中需要注意几点:1. 新建一个节点指向head节点代替head 2. 注意插入后的截断指针操作,避免形成环结构
public class Solution {
public ListNode insertionSortList (ListNode head) {
if(head==null || head.next == null) return head;
ListNode n = new ListNode(1),node = head.next;
n.next = head;
head.next = null;
ListNode tmp,pre;
while(node!=null){
tmp = n.next;pre = n;
while(tmp!=null && tmp.val<node.val){
pre = tmp;
tmp = tmp.next;
}
if(tmp!=null){
pre.next = node;
pre = node.next;
node.next = tmp;
node = pre;
}else{
pre.next = node;
node = node.next;
pre.next.next = null;
}
}
return n.next;
}
}