zoukankan      html  css  js  c++  java
  • 【leetcode】61. 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         if(head==NULL||head->next==NULL||k==0)
    13             return head;
    14         ListNode* bf=head;
    15         ListNode* newhead=head,*end=head;
    16         int length=1;
    17         while(end->next!=NULL){
    18             end=end->next;
    19             length++;
    20         }
    21         end=head;
    22         if(k>length){
    23             k=k%length;
    24         }
    25         if(k==length||k==0)
    26             return head;
    27         k--;
    28         while(k>0&&end->next!=NULL){
    29             end=end->next;
    30             k--;
    31         }
    32         while(end->next!=NULL){
    33             end=end->next;
    34             bf=newhead;
    35             newhead=newhead->next;
    36         }
    37 
    38         bf->next=NULL;
    39         end->next=head;
    40         return newhead;
    41 
    42     }
    43 };
  • 相关阅读:
    类加载器
    hibernate笔记
    windows笔记
    maven笔记
    mysql笔记
    jsonp使用
    [ZJU 1010] Area
    [ZJU 1004] Anagrams by Stack
    [ZJU 1003] Crashing Balloon
    [ZJU 1002] Fire Net
  • 原文地址:https://www.cnblogs.com/LUO77/p/5678580.html
Copyright © 2011-2022 走看看