zoukankan      html  css  js  c++  java
  • [LeetCode] #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.

    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

    每次取k个长度的链表进行反转。时间:30ms

    代码如下:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        bool isKLen(ListNode* head, int k){
            if (k <= 0 || head == NULL)
                return false;
            ListNode *phead = head;
            int count = k - 1;
            while (phead->next != NULL&&count){
                phead = phead->next;
                count--;
            }
            if (count == 0)
                return true;
            else
                return false;
        }
        ListNode* reverseKGroup(ListNode* head, int k) {
            if (head == NULL || k <= 1)
                return head;
            ListNode *p, *q, *phead, *pnext = new ListNode(0);
            pnext->next = p = head;
            phead = pnext;
            while (isKLen(p,k)){
                int count = k-1;
                ListNode *qt = pnext->next;
                while (count--){
                    q = p->next;
                    p->next = q->next;
                    q->next = qt;
                    qt = q;
                }
                pnext->next = qt;
                pnext = p;
                p = p->next;
            }
            return phead->next;
        }
    };
    “If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime.”
  • 相关阅读:
    数据仓库深入了解
    修改hive 默认fs为s3 遇到的坑
    Hadoop集群的各部分常用端口
    mvc结合web应用实例分析
    MVC简介
    关于jQuery获得表单radio类型输入框的选中值
    关于js中的取值问题
    struct2的xml文件中result的配置(转)
    关于http响应状态码
    关于hibernate插入数据到mysql数据库中文乱码问题的解决
  • 原文地址:https://www.cnblogs.com/Scorpio989/p/4549794.html
Copyright © 2011-2022 走看看