博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
25. Reverse Nodes in k-Group
阅读量:2826 次
发布时间:2019-05-14

本文共 1378 字,大约阅读时间需要 4 分钟。

解决这个问题我的想法就是 进行计数 当计数 每次当count=1时记为head count=k时记为tail 然后反转 连入原链表 最后要记得的是 要把最后没有进行反转的地方 也加入到链表中

class Solution {public:    ListNode* reverseKGroup(ListNode* head, int k) {        if(!head||!head->next)            return head;        if(k==1)            return head;        ListNode *prenode=new ListNode(-1);        prenode->next=head;        ListNode *pre=prenode;        int count=1;        ListNode *scan=head;        ListNode *first=NULL;        ListNode *last=NULL;        while(scan)        {            if(count==k)            {                last=scan;                scan=scan->next;                count=1;                pre->next=reverse(first,last);                pre=first;            }            if(count==1) {                first = scan;                if(!scan)                    break;            }            scan=scan->next;            count++;        }        if(count!=1)             pre->next=first;        return prenode->next;    }    ListNode * reverse(ListNode *head,ListNode *tail)    {        if(!head||!head->next)            return head;        ListNode *curhead=head;        ListNode *scan=head->next;        curhead->next=NULL;        while(scan!=tail)        {            ListNode *temp=scan->next;            scan->next=curhead;            curhead=scan;            scan=temp;        }        tail->next=curhead;        return tail;    }};

转载地址:http://vhked.baihongyu.com/

你可能感兴趣的文章
java数组
查看>>
ecplise使用经验
查看>>
java非访问修饰符
查看>>
Java String、StringBuffer、StringBuilder类
查看>>
java异常处理总结
查看>>
java多线程知识总结
查看>>
Java 抽象类和接口
查看>>
java练习总结
查看>>
链表参考
查看>>
JAVA虚拟机类加载机制
查看>>
JVM垃圾回收机制
查看>>
设计模式之代理模式与装饰模式
查看>>
HashMap原理分析
查看>>
小计,困扰了一天的图片内存问题
查看>>
利用aosv库实现各种滚动与组件的互动
查看>>
在navigationView中切换/创建fragment时的卡顿优化
查看>>
在布局中使用include引入其他layout时引发click事件不触发的问题
查看>>
关于使用ListView时某些item点击无效/延迟的解决方案
查看>>
Android Studio 升级2.3以后无法启动App的解决方案
查看>>
Java实现二叉树的遍历
查看>>