博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reverse Nodes in k-Group——简单的指针问题
阅读量:5154 次
发布时间:2019-06-13

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

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.

If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.

You may not alter the values in the nodes, only nodes itself may be changed.

Only constant memory is allowed.

For example,

Given this linked list: 1->2->3->4->5

For k = 2, you should return: 2->1->4->3->5

For k = 3, you should return: 3->2->1->4->5

又是一道链表的题,关于链表的题好像都是关于指针的,题目都不难吧,主要是需要细心,因为不难,所以代码没有自己写,这里还可以考虑之前做过的链表翻转m至n那道题,然后调用函数就解决了······················

下面的代码的思路是用子函数挨个处理每个K段。

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* reverse(ListNode* head){        ListNode* prev = nullptr;        ListNode* nowNode = head;        while(nowNode){            ListNode* next = nowNode -> next;            nowNode -> next =  prev;            prev = nowNode;            nowNode = next;        }        return prev;    }    ListNode *reverseKGroup(ListNode *head, int k) {        if(head == nullptr || head -> next == nullptr || k < 2) return head;                int cnt = 1;        ListNode* nowHead = head;        ListNode* nowNode = head;        while(nowNode && cnt < k){            cnt ++;            nowNode = nowNode -> next;        }        if(nowNode && cnt == k){            ListNode* tail = reverseKGroup(nowNode -> next , k);            nowNode -> next = nullptr;            head = reverse(head);            nowHead -> next = tail;        }        return head;    }};

 

  

转载于:https://www.cnblogs.com/qiaozhoulin/p/4775903.html

你可能感兴趣的文章
Mashup
查看>>
html常用标签
查看>>
Ubuntu 部署 nginx
查看>>
A Very Easy Triangle Counting Game
查看>>
oracle为用户赋予各种权限,仅作为一个普通的用户
查看>>
Vue.Js添加自定义插件
查看>>
[Swift] 创建一个对象
查看>>
POPSpring动画参数详解
查看>>
如何做出一个博客网站
查看>>
命令窗口修改编码,CMD编码修改方法
查看>>
2.1 关系型数据的收集--Sqoop
查看>>
网页游戏
查看>>
HDU 5242 利用树链剖分思想进行贪心
查看>>
R 语言实战-Part 4 笔记
查看>>
[转]vs2010每次build都会重新编译链接,浪费大量时间
查看>>
去除windows的Shift+Space 全角半角切换
查看>>
C# 摄像头拍照完整实例
查看>>
异常:System.BadImageFormatException,未能加载正确的程序集XXX
查看>>
linux下tomcat之too many open files
查看>>
记一次序列化的JSON解析问题
查看>>