当前位置: 首页 > news >正文

leetcode 25. Reverse Nodes in k-Group

题目

就是每k个节点进行一次反转,然后不够的话,就不转了

题解

比如当前是1->2->3->4->5 k = 2, 然后我递归 找3->4->5 然后递归 5发现5不够k=2,然后直接返回

然后我反转 3->4 5 反转结果为 4->3->5
然后我再返回
反转 1->2 4->3->5
然后结果就是2->1->4->3->5

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        if(head == NULL || head->next == NULL) return head;
        // 先找到第k个节点
        int cnt = 0;
        ListNode *cur = head;
        while(cur != NULL && cnt != k) {
            cur = cur->next;
            cnt ++;
        }
        // 比如我 1->2->3->4->5 k = 2
        // 那么我现在已经到3了 我对3这里进行反转
        if(cnt == k) {
            cur = reverseKGroup(cur, k);
            while(cnt -- > 0) {
                ListNode* headNext = head->next;
                head->next=cur;
                cur = head;
                head = headNext;
            }
            return cur;
        }
        return head;
    }
};

转载于:https://www.cnblogs.com/Draymonder/p/11331783.html

相关文章:

  • python异常处理
  • 极客时间-左耳听风-程序员攻略-UI/UX设计
  • 贪心训练题
  • idea新建maven项目后生成web.xml方法和添加到tomcat方法
  • db mysql / mysql cluster 5.7.19 / reboot / devops
  • JAVA:用户从键盘只能输入整数,程序输出这些整数的乘积。
  • liquibase使用教程
  • Python netaddr CIDR转换
  • 定制化扫描工具
  • 内网远程溢出漏洞利用
  • github proxy
  • D-Link系列路由器漏洞挖掘
  • 区块链漏洞平台的漏洞信息
  • AttributeError: module 'subprocess' has no attribute 'mswindows'
  • ajax 并发问题
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • jquery cookie
  • Logstash 参考指南(目录)
  • Python socket服务器端、客户端传送信息
  • React的组件模式
  • Redux 中间件分析
  • SSH 免密登录
  • tab.js分享及浏览器兼容性问题汇总
  • vue-loader 源码解析系列之 selector
  • 警报:线上事故之CountDownLatch的威力
  • 离散点最小(凸)包围边界查找
  • 聊一聊前端的监控
  • 软件开发学习的5大技巧,你知道吗?
  • 三栏布局总结
  • 异步
  • 译有关态射的一切
  • 智能合约Solidity教程-事件和日志(一)
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #etcd#安装时出错
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (2015)JS ES6 必知的十个 特性
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (原)本想说脏话,奈何已放下
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)Oracle存储过程编写经验和优化措施
  • (转)详解PHP处理密码的几种方式
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .htaccess配置常用技巧
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net core Swagger 过滤部分Api