• [leetcode] Insertion Sort List(python)


    简单的插入排序,总是超时,暂且放在这记录一下。

    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;
    }


  • 相关阅读:
    高性能无锁队列,代码注释
    阿里mysql同步工具otter的docker镜像
    webgl鱼眼算法
    国际网络环境对库的影响
    newlisp
    java面试之数据库
    java面试之遇到过的问题
    java面试之springboot
    git常用命令
    java面试之jenkins
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5236463.html
Copyright © 2020-2023  润新知