# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
n = 0
cur = head
while cur:
n += 1#统计节点个数
cur = cur.next
p0 = dummy = ListNode(next = head)
pre = None
cur = head
while n >= k:
n -= k
for _ in range(k):
nxt = cur.next
cur.next = pre
pre = cur
cur = nxt
nxt = p0.next
nxt.next = cur
p0.next = pre
p0 = nxt
return dummy.next
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def sortList(self, head: Optional[ListNode]) -> Optional[ListNode]:
length = 0
if head == None or head.next == None: return head
currentNode = head
values = []
while currentNode:
length += 1
values.append(currentNode.val)
currentNode = currentNode.next
values =sorted( values )
currentNode = head
i = 0
while currentNode:
currentNode.val = values[i]
currentNode = currentNode.next
i += 1
return head