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

[leetcode]Insertion Sort List @ Python

2014-04-29 21:13 525 查看
原题地址:http://oj.leetcode.com/problems/insertion-sort-list/

题意:对链表进行插入排序。

解题思路:首先来对插入排序有一个直观的认识,来自维基百科。



代码循环部分图示:



代码:

class Solution:
# @param head, a ListNode
# @return a ListNode
def insertionSortList(self, head):
if not head:
return head
dummy = ListNode(0)                         #为链表加一个头节点
dummy.next = head
curr = head
while curr.next:
if curr.next.val < curr.val:            #如果链表是升序的,那么curr指针一直往后移动
pre = dummy                         #直到一个节点的值小于前面节点的值
while pre.next.val < curr.next.val: #然后寻找插入的位置
pre = pre.next
tmp = curr.next                     #上面的示意图就是以下这段代码
curr.next = tmp.next
tmp.next = pre.next
pre.next = tmp
else:
curr = curr.next
return dummy.next
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: