博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rotate List
阅读量:4070 次
发布时间:2019-05-25

本文共 836 字,大约阅读时间需要 2 分钟。

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,k = 3,就相当于k = 1 的情况。

class Solution {public:    ListNode *rotateRight(ListNode *head, int k) {        if(head == NULL || head->next == NULL || !k)        return head;        ListNode *rhead,*rtail;        int len = 1;        rhead = head;        while(rhead->next) { ++len; rhead = rhead->next;}        rhead->next = head;        /*take care: k > len is ok!!!*/        //if(k >= len) return head;        k=k%len;        int stps = 1;        rtail = head;        while(stps < len - k) { stps++; rtail = rtail->next; }        head = rtail->next;        rtail->next = NULL;        return head;    }};
这里将链表尾指向头结点,构成环。就不用额外处理了,在第一次遍历中就处理好了。

转载地址:http://xelji.baihongyu.com/

你可能感兴趣的文章
Spring-BeanFactory后置处理器之ConfigurationClassPostProcessor
查看>>
Dubbo源码分析之四:客户端服务调用过程
查看>>
Spring的Bean后置处理器之AutowiredAnnotationBeanPostProcessor
查看>>
那些年,我们踩过的技术坑汇总
查看>>
Dubbo的心跳机制
查看>>
程序猿应该了解的密码技术
查看>>
关于安卓端okhttp框架请求后端服务丢失Authorization请求头的问题
查看>>
RocketMQ 消费消息过程分析
查看>>
Dubbo源码分析之三:服务引用
查看>>
Spring的重要拓展点BeanPostProcessor
查看>>
RocketMQ 事务消息使用与分析
查看>>
Spring-Bean后置处理器之CommonAnnotationBeanPostProcessor
查看>>
Dubbo源码分析之二:服务暴露
查看>>
Spring-Bean后置处理器之AnnotationAwareAspectJAutoProxyCreator
查看>>
Dubbo源码分析之一:前置知识
查看>>
Dubbo源码分析之五:服务端响应客户端请求过程
查看>>
RocketMQ 延迟消息的使用与分析
查看>>
RocketMQ-延迟消息的使用与原理分析
查看>>
RocketMQ Reliablity
查看>>
Dubbo源码学习之一:前置准备
查看>>