有关链表的LeetCode做题笔记合集,Python实现
链表定义
# Definition for singly-linked list.
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
25. k个一组翻转链表 Reverse Nodes in k-Group
利用数组来实现k个一组的翻转,然后重新连接成链表
class Solution:
def reverseKGroup(self, head: ListNode, k: int) -> ListNode:
arr, i = [], 0
if not head:
return None
while head:
arr.append(head)
head = head.next
while i <= len(arr) - k:
arr[i:i+k] = arr[i:i+k][::-1]
i += k
for j in range(len(arr) - 1):
arr[j].next = arr[j+1]
if arr:
arr[-1].next = None
return arr[0]
网友评论