zoukankan      html  css  js  c++  java
  • [Leetcode] Distinct Subsequences

    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.

    K可能会大于链表的长度,坑爹!

     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 NULL;
    13         ListNode *tail = head, *kth = head;
    14         int n = 0;
    15         while (tail != NULL) {
    16             ++n;
    17             tail = tail->next;
    18         }
    19         tail = head;
    20         k %= n;
    21         for (int i = 0; i < k; ++i) {
    22             tail = tail->next;
    23         }
    24         while (tail != NULL && tail->next != NULL) {
    25             tail = tail->next;
    26             kth = kth->next;
    27         }
    28         if (tail != NULL) {
    29             tail->next = head;
    30             head = kth->next;
    31             kth->next = NULL;
    32         }
    33         return head;
    34     }
    35 };
  • 相关阅读:
    pylint
    Cygwin安装与配置
    Spring的配置文件
    网络传输测试软件
    MINA快速传输文件
    Jar包下载
    shutdown彻底关闭tomcat,以及多线程关闭
    Git使用
    例说数学学习中的四基
    求等差数列前n项和S_n的最值
  • 原文地址:https://www.cnblogs.com/easonliu/p/3659174.html
Copyright © 2011-2022 走看看