zoukankan      html  css  js  c++  java
  • Leetcode | 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.

    先把链串起来,连成环。然后将head往后移动(len-k%len)次,再把链断开。整个思路也非常清晰。

     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) return head;
    13         int len = 1;
    14         ListNode *tail = head, *prev;
    15         while (tail->next) {
    16             len++;
    17             tail = tail->next;
    18         }
    19         tail->next = head;
    20         k = len - (k % len);
    21         for (int i = 0; i < k; i++) {
    22             prev = head;
    23             head = head->next;
    24         }
    25         prev->next = NULL;
    26         return head;
    27     }
    28 };
  • 相关阅读:
    9.5(day3)
    9.4(day2)
    web第一阶段 9.3(day1)
    8.29
    8.28
    8.27
    8.24
    dockerfile的编写
    深入解析pod对象的基本概念
    k8s最小调度pod的概念
  • 原文地址:https://www.cnblogs.com/linyx/p/4036541.html
Copyright © 2011-2022 走看看