题目描述:
给一个链表,每k个节点一组进行翻转,请返回翻转后的链表;如果节点总数不是k的整数倍,那么请将最后剩余节点保持原有顺序
示例:
给定这个链表:1>2>3>4>5
当k=2,应该返回:2>1>4>3>5
当k=3,应该返回:3>2>1>4>5
输入描述:
第一行:依次输入链表中的各个元素,以“#”结束
第二行:每组数量k
输出描述:处理后的链表中的各个元素,以“->”连接
输入:1 2 3 4 5
2
输出:2>1>4>3>5
代码:
def reverse_list(arr, k):
count = 0
s = []
for i in range(len(arr)//k):
count = (i+1)* k-1
for j in range(k):
s.append(arr[count-j])
if len(arr) % k==0:
return s
else:
for m in arr[count+1:]:
s.append(m)
return s
arr = [int(x) for x in input().split(' ')]
k = int(input())
s = reverse_list(arr, k)
out = ''
for num in range(len(s)-1):
out += str(s[num])+ '->'
out += str(s[-1])
print(out)