zoukankan      html  css  js  c++  java
  • 61. Rotate List

    description:

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

    Example:

    Example 1:
    
    Input: 1->2->3->4->5->NULL, k = 2
    Output: 4->5->1->2->3->NULL
    Explanation:
    rotate 1 steps to the right: 5->1->2->3->4->NULL
    rotate 2 steps to the right: 4->5->1->2->3->NULL
    
    Example 2:
    
    Input: 0->1->2->NULL, k = 4
    Output: 2->0->1->NULL
    Explanation:
    rotate 1 steps to the right: 2->0->1->NULL
    rotate 2 steps to the right: 1->2->0->NULL
    rotate 3 steps to the right: 0->1->2->NULL
    rotate 4 steps to the right: 2->0->1->NULL
    

    answer:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* rotateRight(ListNode* head, int k) {
            if (!head) return NULL;
            ListNode* cur = head;
            int n = 1;
            while(cur->next){
                n++;
                cur = cur->next;
            }
            cur ->next = head;
            int m = n - k%n;
            for (int i = 0; i < m; ++i) {
                cur = cur->next;
            }
            ListNode *newhead = cur -> next;
            cur->next = NULL;
            return newhead;
        }
    };
    
    

    relative point get√:

    hint :

  • 相关阅读:
    二叉排序树
    安全的终止线程的两种方法
    图的广度优先遍历(BFS)
    图的深度优先遍历(DFS)
    volatile的应用
    二叉树的遍历
    Java-反射
    Java--泛型
    单例模式
    剑指Offer--对称二叉树
  • 原文地址:https://www.cnblogs.com/forPrometheus-jun/p/11330011.html
Copyright © 2011-2022 走看看