首页 > 试题广场 >

将单链表的每K个节点之间逆序

[编程题]将单链表的每K个节点之间逆序
  • 热度指数:2200 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个单链表,实现一个调整单链表的函数,使得每 K 个节点之间的值逆序,如果最后不够 K 个节点一组,则不调整最后几个节点。

输入描述:
第一行一个整数 n,n 表示单链表的节点数量。

第二行 n 个整数 val 表示链表的各个节点的值。

第三行一个整数 K。


输出描述:
在给定的函数内返回链表的头指针。
示例1

输入

5
1 2 3 4 5
3

输出

3 2 1 4 5

备注:

头像 Bob_linux
发表于 2020-02-29 18:46:29
vector<list_node*> reverseN(list_node * head1, int K) { list_node* pre = nullptr; list_node* next = nullptr; vector<list_node*> 展开全文
头像 张嘉麟
发表于 2024-04-02 17:04:39
#include <iostream> #include<stack> #include<vector> #include<algorithm> #include<list> using namespace std; //链表节点结构体 s 展开全文
头像 Jim-zht
发表于 2021-09-07 11:53:28
遍历这个链表。 每当count值加到k的时候就将值置为零,1-2-3。 reverse函数,接收四个值:pre,start,cur,next。 注意第一次时候,需要更换头部,获得start的时候,需要需要考虑pre是不是空。如果是空的话,那么将其值置为head。