交换单链表位置k和n-k的两个元素,链表元素个数事先未知(只交换两个元素的值即可,不用调整链表指针)
1 #1721
2 #Runtime: 1265 ms (Beats 56.45%)
3 #Memory: 91.1 MB (Beats 69.35%)
4
5 class Solution(object):
6 def swapNodes(self, head, k):
7 """
8 :type head: ListNode
9 :type k: int
10 :rtype: ListNode
11 """
12 t = 1
13 head2, head3 = head, head
14 while t < k:
15 head2 = head2.next
16 head3 = head3.next
17 t += 1
18 n = t
19 while head3:
20 head3 = head3.next
21 n += 1
22 t = 0
23 head3 = head
24 while t < n - k - 1:
25 head3 = head3.next
26 t += 1
27 head2.val, head3.val = head3.val, head2.val
28 return head