2074. Reverse Nodes in Even Length Groups (Medium) - TengnanYao/daily_leetcode GitHub Wiki
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reverseEvenLengthGroups(self, head: Optional[ListNode]) -> Optional[ListNode]:
pre, cur, pre.next = head, head.next, None
k = 2
while cur:
nodes = []
while len(nodes) < k and cur:
nodes.append(cur)
cur.next, cur = None, cur.next
flag = len(nodes) % 2
while nodes:
if flag:
pre.next = nodes.pop(0)
else:
pre.next = nodes.pop()
pre = pre.next
k += 1
return head