链表算法之k逆序
来源:互联网 发布:网络21健康行是传销吗 编辑:程序博客网 时间:2024/06/05 07:32
有一个单链表,请设计一个算法,使得每K个节点之间逆序,如果最后不够K个节点一组,则不调整最后几个节点。例如链表1->2->3->4->5->6->7->8->null,K=3这个例子。调整后为,3->2->1->6->5->4->7->8->null。因为K==3,所以每三个节点之间逆序,但其中的7,8不调整,因为只有两个节点不够一组。
给定一个单链表的头指针head,同时给定K值,返回逆序后的链表的头指针。
思路:获取K个值之后放入栈中,再出栈,放入链表,再获取k值,依次循环。注意:最后不足k个的情况。
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class KInverse {public: ListNode* inverse(ListNode* head, int k) { stack<int> m; ListNode *p=head; ListNode *q=head; int i=0; while(p) //遍历整个链表 { for( i=0;i<k&&p!=NULL;i++) //每三个一组放入栈中 { m.push(p->val); p=p->next; } if(i==k) //如果获取了k个才进行逆序,最后几个如果不足k个则不执行 { for(int j=0;j<k;j++) //出栈,入链表 { q->val=m.top(); m.pop(); q=q->next; } } } return head; }};
0 0
- 链表算法之k逆序
- 链表之K逆序
- 链表的k逆序
- 算法之链表逆序排列
- 每天一个算法之链表逆序
- 链表逆序算法
- 链表13:链表的k逆序
- 一步一步写算法(之创建逆序链表)
- 数据结构之链表:实现单链表的k逆序(2)
- 算法-单向链表逆序
- java算法之逆序
- 单向链表每k个数逆序拼接
- 链表之逆序打印
- day11之求二叉树的高度+销毁一颗二叉树+链表每K个节点之间逆序
- 基本算法—链表逆序
- 简单算法 - 链表逆序思路详解
- 链表的逆序输出 递归算法
- 算法学习十四----逆序输出链表
- 推导相机变换矩阵
- 目前看到的最好的RNN、LSTM、GRU博客:Understanding LSTM Networks(翻译)
- 前端测试工具-摩卡(简单了解)
- web前端知识体系大全
- SpringMvc中表单标签的使用注意点
- 链表算法之k逆序
- Gson 解析工具封装
- expected at least 1 bean which qualifies as autowire candidate for this dependency.
- 解决eclipse中git插件中的cannot open git-upload-pack问题
- Android Intent 启动第三方程序
- 第143课:Spark面试经典系列之Reduce端OOM和shuffle file not found如何解决
- 轻松搞定Android中自定义折线图
- Spring的PropertyPlaceholderConfigurer应用
- ANSI X9.19 MAC算法介绍