标签:
Sort a linked list using insertion sort.
这道题考察了linkedList的知识点,以及insertion sort的基本概念。考察了网上的做法,是建一个dummy node做前置节点, 每次取unsorted list里面的一个节点,记录下下一跳位置,然后把这个点插入到sorted list对应位置。 Insert Sort的做法相当于是每次从原来的List里面删除头节点,再把这个头节点插入到新的List里相应的位置。这个新List全由原来的节点组成,只是变换了顺序/**
* 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) { ListNode dummy =new ListNode(-1); while(head != null){ ListNode node = dummy; while(node.next != null && node.next.val < head.val){ node = node.next; }
ListNode temp = head.next; head.next = node.next; node.next = head; head = temp; } return dummy.next; } }
标签:
原文地址:http://www.cnblogs.com/incrediblechangshuo/p/4322654.html