Partition List @ LeetCode (Python)
kitt
posted @ 2014年3月15日 14:19
in LeetCode
, 2145 阅读
用两个链表分别记录<x的节点和>=x的节点。
Use two linked lists to separately record nodes < x and nodes >= x.
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # @param head, a ListNode # @param x, an integer # @return a ListNode def partition(self, head, x): if head == None: return None headLess = currLess = ListNode(0) # dummy node headGreater = currGreater = ListNode(0) # dummy node prev, curr = None, head while curr: prev, curr = curr, curr.next if prev.val < x: currLess.next, currLess, currLess.next = prev, prev, None else: currGreater.next, currGreater, currGreater.next = prev, prev, None currLess.next = headGreater.next return headLess.next
2014年4月01日 04:09
这个效率挺好的
2014年4月01日 10:59
@Allen: thx
2014年4月05日 03:06
我的方法是开两个虚拟节点,一个小一个大。然后分割链表。最后前后连接。java版本20行。
2014年4月07日 19:31
@有问题: 确实简短不少