博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode]Rotate List @ Python
阅读量:6874 次
发布时间:2019-06-26

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

原题地址:https://oj.leetcode.com/problems/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.

解题思路:循环右移一条链表,比如k=2,(1,2,3,4,5)循环右移两位变为(4,5,1,2,3)。由于k值有可能比链表长度大很多,所以先要用一个count变量求出链表的长度。而k%count就是循环右移的步数。

代码:

# Definition for singly-linked list.# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # @param head, a ListNode    # @param k, an integer    # @return a ListNode    def rotateRight(self, head, k):        if k == 0:            return head        if head == None:            return head        dummy = ListNode(0)        dummy.next = head        p = dummy        count = 0        while p.next:            p = p.next            count += 1        p.next = dummy.next        step = count - ( k % count )        for i in range(0, step):            p = p.next        head = p.next        p.next = None        return head

 

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

你可能感兴趣的文章
API Token 驗證方式設計
查看>>
青芒 for Mac客户端开发笔记
查看>>
XTCP 一个便捷的TCP消息包拼装和解析框架
查看>>
阿里云态势感知服务(上篇)
查看>>
基于 Spring Boot 2.0 构建一个 RESTful WebService
查看>>
Qtum研究院:以太坊智能合约潜在风险
查看>>
iOS快速集成支付宝
查看>>
Java中的数组
查看>>
git stash 怎么用?
查看>>
如何处理错误消息Please install the gcc make perl packages
查看>>
图片加载之SDWebImage(上)
查看>>
深入理解javascript中的继承机制(1)
查看>>
区块链平台EOSIO开发智能合约和dapp(三)
查看>>
Spring Cloud Gateway的全局异常处理
查看>>
策略模式
查看>>
nginx+php执行请求的工作原理
查看>>
图解git原理与日常实用指南
查看>>
告诉你微信域名被封的原因和防封方案
查看>>
[sublime系列文章] sublime text 3插件配置说明
查看>>
Python 进阶之路 (七) 隐藏的神奇宝藏:探秘Collections
查看>>