专栏首页算法修养LeetCode 61. Rotate List

LeetCode 61. Rotate List

题目

c++

/**
 * 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==NULL)
            return head;
        if(k==0)
            return head;
        ListNode* end ;
        ListNode* start = head;
        ListNode* pre;
        ListNode* term =head;
        
        int len=1;
        
        while(head->next!=NULL)
        {
            head = head->next;
            len++;
        }
        
        if(len==1)
            return head;
        
        end = head;
        
        int n = k%len;
        
        if(n==0)
            return start;
        
        int m = len-n;
        
        head = start;
        int i=0;
        while(head!=NULL)
        {
            if(i==m)
            {
                start = head;
                break;
            }
            if(i==m-1)
            {
                pre=head;
            }
            
            i++;
            
            head=head->next;
        }
        
        pre->next=NULL;
        end->next=term;
        
       
        
        return start;
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 究极面试题:如何用有限个栈模拟常数效率操作的队列?

    写这篇博客来源于一次面试的经历。经典面试题:如何用两个栈实现一个队列?它经常被拿来面试。如果对栈和队列比较掌握的人,就可以轻松的答出来。

    ShenduCC
  • LeetCode 24 Swap Nodes in Pairs

    ShenduCC
  • LeetCode 147. Insertion Sort List

    思路就是遍历链表,没遍历到一个新的节点,都把它和从头开始比,遇到第一个比它大的就插进去。

    ShenduCC
  • 链表中间段逆序

    LeetCode 92. Reverse Linked List II 已知链表头节点指针head,将链表从位置m到n逆序。(不申请额外空间)

    小飞侠xp
  • 35. 翻转链表

    样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

    和蔼的zhxing
  • 《剑指offer》第22天:链表成环的新解法

    思路:通过hash表来检测节点之前是否被访问过,来判断链表是否成环。这是最容易想到的一种题解了。过于简单,直接上代码,go:

    程序员小浩
  • 基于栈和队列实现括号匹配算法

    视频 http://study.163.com/course/courseLearn.htm?courseId=555010#/learn/video?l...

    陈黎栋
  • Golang Leetcode 203. Remove Linked List Elements.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89012730

    anakinsun
  • 剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lia...

    Michael阿明
  • 算法模板——平衡树Treap

    实现功能如下——1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x...

    HansBug

扫码关注云+社区

领取腾讯云代金券