专栏首页皮皮瞎学编程LinkedList - 25. Reverse Nodes in k-Group

LinkedList - 25. Reverse Nodes in k-Group

25. Reverse Nodes in k-Group

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

k is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.

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

Note:

  • Only constant extra memory is allowed.
  • You may not alter the values in the list's nodes, only nodes itself may be changed.

思路:

题目意思是每k个节点翻转一次链表,如果节点不足k个,就不翻转,这是一个简单的实现题,运用递归的思想,找到翻转链表的起始点,然后翻转k个节点。

代码:

java:

/**

 * Definition for singly-linked list.

 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseKGroup(ListNode head, int k) {
        if (head == null || head.next == null) return head;
        
        int count = 0;
        ListNode cur = head;
        while (cur != null && count != k) {
            cur = cur.next;
            count++;
        }
        
        if (count == k) {
            cur = reverseKGroup(cur, k);
            // resever list
            while (count-- > 0) {
                ListNode tmp = head.next;
                head.next = cur;
                cur = head;
                head = tmp;
            }
            head = cur;
        }
        
        return head;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Tree - 109. Convert Sorted List to Binary Search Tree

    109. Convert Sorted List to Binary Search Tree

    用户5705150
  • LinkedList - 142. Linked List Cycle II

    Given a linked list, return the node where the cycle begins. If there is no cycl...

    用户5705150
  • String - 71. Simplify Path

    Given an absolute path for a file (Unix-style), simplify it. Or in other words, ...

    用户5705150
  • CSS魔法堂:重拾Border之——更广阔的遐想

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半...

    ^_^肥仔John
  • ENS介绍

    ENS(Ethereum Name Service)是以太坊域名服务,是一个基于以太坊区块链的分布式、开放和可扩展的命名系统。

    Tiny熊
  • 中国第一家交货的自动驾驶独角兽:完全自主泊车,千元级硬件成本

    意义还不止于此。在特斯拉路线备受质疑、全球自动驾驶初创公司八卦多于业务进展,无人车“寒冬”的种种不利的风潮下,此时交货,非比寻常。

    量子位
  • 苹果在自动驾驶领域苦苦追赶:测试车增至27辆

    腾讯科技讯 在自动驾驶汽车领域,苹果公司远远落后于竞争对手,正在加紧追赶。据外媒最新消息,美国加州政府日前证实,苹果的自动驾驶测试车辆已经增加到了27辆。 据彭...

    企鹅号小编
  • 人工检查,11 个类、97942 个标签,Roboflow 开源自动驾驶数据集可以使用啦

    机器学习是通过举例来教计算机算法以执行新任务的过程,但是,ML 模型只能在和它们所训练的数据一样的情况下表现良好。

    AI研习社
  • 调整社交媒体上的算法过滤(CS CY)

    通过内容的算法过滤(AF),社交媒体平台(SMP)可以影响用户的感知和行为。由于关键的社会,法律和财务考虑,试图调节AF的负面影响的尝试通常很难通过或执行。在这...

    小童
  • 【中国自动驾驶里程碑】北京出台全国首例自动驾驶新规,将推出第一批测试道路

    【新智元导读】今天,北京市交通委发布《北京市关于加快推进自动驾驶车辆道路测试有关工作的指导意见(试行)》 和《北京市自动驾驶车辆道路测试管理实施细则(试行)》,...

    新智元

扫码关注云+社区

领取腾讯云代金券