Sort a linked list using insertion sort.
题目大意:将一个单链表使用插入排序的方式排序。
解题思路:先新建一个头指针,然后重新构建一下这个单链表,每次从头找到第一个比当前元素大的,插在这个元素前面。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode insertionSortList(ListNode head) { if(head==null||head.next==null){ return head; } ListNode headPtr = new ListNode(0); while(head!=null){ ListNode node = headPtr; ListNode tmp = head.next; while(node.next!=null&&head.val>node.next.val){ node=node.next; } head.next=node.next; node.next=head; head=tmp; } return headPtr.next; } }
时间: 2024-10-13 15:48:08