首页 > 代码库 > LeetCode Insertion Sort List
LeetCode Insertion Sort List
Sort a linked list using insertion sort.
题目意思是用插入排序对单链表进行排序,做法是返回一个新的单链表,每次插入的时候都添加一个新建的节点。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode insertionSortList(ListNode head) { if (head==null || head.next==null) { return head; } ListNode first = new ListNode(head.val); ListNode curr = head.next; ListNode last = first,temp=first; while (curr!=null) { if (curr.val>=last.val) { ListNode newlast = new ListNode(curr.val); last.next=newlast; last=newlast; }else { if (first.val>=curr.val) { ListNode newfirst=new ListNode(curr.val); newfirst.next=first; first=newfirst; }else { temp=first; while (curr.val>temp.val&&curr.val>temp.next.val) { temp=temp.next; } ListNode newmiddle = new ListNode(curr.val); newmiddle.next=temp.next; temp.next=newmiddle; } } curr=curr.next; } return first; }}
LeetCode Insertion Sort List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。