題目如下:
這道題我的解法效率不是特別高,拋磚引玉,代碼如下,我會找時間重新再寫另外一個解法:
class Solution:
def reverseKGroup(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: ListNode
"""
if head is None or head.next is None or k == 1:
return head
temp = []
reverse_list = []
while head is not None:
temp.append(head.val)
head = head.next
if k == len(temp):
temp.reverse()
cur = ListNode(temp[0])
head = cur
cur = ListNode(temp[1])
head.next = cur
for j in range(2, len(temp)):
cur.next = ListNode(temp[j])
cur = cur.next
return head
i = 0
while i + k <= len(temp):
re_temp = temp[i:i + k]
re_temp.reverse()
for t in re_temp:
reverse_list.append(t)
i = i + k
for t in temp[i:]:
reverse_list.append(t)
cur = ListNode(reverse_list[0])
head = cur
cur = ListNode(reverse_list[1])
head.next = cur
for j in range(2, len(reverse_list)):
cur.next = ListNode(reverse_list[j])
cur = cur.next
return head
其它題目:leetcode題目答案講解匯總(Python版 持續(xù)更新)
ps:如果您有好的建議,歡迎交流 :-D赤拒,
也歡迎訪問我的個人博客 苔原帶 (www.tundrazone.com)