您的位置:首页 > Web前端 > Node.js

python写算法题:leetcode: 25. Reverse Nodes in k-Group

2017-06-29 21:29 423 查看
https://leetcode.com/problems/reverse-nodes-in-k-group/#/description

class Solution(object):
def reverseNode(self, nodes, k):
for ind in xrange(k):
node = nodes
for v in xrange(k-ind-1):
if not node: return None,None
node = node.next
if not node: return None,None
if ind != 0:
baknode.next = node
else:
headnode = node
nheadnode = node.next
baknode = node
node.next=nheadnode
return headnode,nheadnode

def reverseKGroup(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: ListNode
"""
if k <= 1:
return head
# a ... bc .... de....
# b ... ad .... cf....
bnode,cnode = self.reverseNode(head, k)

if not bnode:
return head

newhead = bnode
anode = head

while bnode.next:
dnode,cnode1 = self.reverseNode(cnode, k)
if not dnode:
break

anode.next = dnode
anode = cnode
cnode = cnode1
bnode = dnode
return newhead
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: