zoukankan      html  css  js  c++  java
  • Rotate List

    Given a list, rotate the list to the right by k places, where k is non-negative.

    For example:
    Given 1->2->3->4->5->NULL and k = 2,

    return 4->5->1->2->3->NULL.

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode *rotateRight(ListNode *head, int k) {
    12         
    13         int size = 0;
    14         ListNode *p = head;
    15         while(p != NULL)
    16         {
    17             size++;
    18             p = p->next;
    19         }
    20         
    21         if(size == 0 || size == 1)
    22             return head;
    23             
    24         k = k % size;
    25         for(int i = 0; i < k; i++)
    26         {
    27             ListNode *pretail = head;
    28             while(pretail->next->next != NULL)
    29                 pretail = pretail->next;
    30                 
    31             ListNode *tail = pretail->next;
    32             pretail->next = NULL;
    33             tail->next = head;
    34             head = tail;
    35         }
    36         
    37         return head;
    38     }
    39 };
  • 相关阅读:
    MySQL之存储引擎
    MySQL之基础功能
    MySQL之正则表达式
    MySQL之数据类型
    MySQL之多表查询
    MySQL之单表查询
    linux命令useradd添加用户详解
    MySQL之数据操作
    MySQL之表操作
    MySQL之库操作
  • 原文地址:https://www.cnblogs.com/YQCblog/p/3970199.html
Copyright © 2011-2022 走看看