算法:单链表反转
题目
1 | 这其实是一道变形的链表反转题,大致描述如下 |
解析
这道题的难点在于,是从链表的尾部开始组起的,而不是从链表的头部,如果是头部的话,那我们还是比较容易做的,因为你可以遍历链表,每遍历 k 个就拆分为一组来逆序。但是从尾部的话就不一样了,因为是单链表,不能往后遍历组起;
思路1:整体反转,然后从头开始截取 K个节点 ,被后续截图的K个节点 的尾部连接;最后长度不足K的节点再局部反转 作为 队头
思路2:整体反转,
Java解法
1 | class Node { |
Python解法