您的位置:首页 > 编程语言 > Python开发

[leetcode] Insertion Sort List(python)

2014-07-05 15:29 381 查看
简单的插入排序,总是超时,暂且放在这记录一下。

class Solution:
# @param head, a ListNode
# @return a ListNode
def insertionSortList(self, head):

if head == None or head.next == None:
return head
psuhead = ListNode(-1)
while head:
tail = psuhead
headnext = head.next
while tail.next and tail.next.val < head.val:
tail = tail.next
head.next = tail.next
tail.next = head
head = headnext
return psuhead.next


Last executed input:{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,2
c++AC的

ListNode *insertionSortList(ListNode *head) {
if(head == NULL || head->next == NULL)
return head;
//排序涉及到头结点的变化,为了方便,我们定义一个额外的伪头结点
ListNode *psuHead = new ListNode(-1);
while(head){
ListNode *pre = psuHead;
ListNode *tail = psuHead->next;
while(tail && tail->val < head->val){
pre = tail;
tail = tail->next;
}
ListNode *nextHead = head->next;
head->next = pre->next;
pre->next = head;
head = nextHead;
}

head = psuHead->next;
delete (psuHead);
return head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: