栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

leetcode 61. 旋转链表 python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode 61. 旋转链表 python

题目描述:力扣

题目要求输入一个链表的头节点head和一个整数k,输出将链表右移k个位置的链表。

 

 题解:

基本思路:

1.确定输入链表的长度length。

2.将第length-k个节点的next节点设为空。

3.将第length-k+1个节点作为新的链表的头节点,将链表中最后一个节点的next设为原来的head节点。

需要注意的部分:

1.如果输入链表只有一个节点或者为空,无论k为多少直接返回head.

2.当k比链表长度length大时,旋转k位的结果和旋转k%length的结果相同。

3.如果k和链表长度相同,最终结果也和最初链表一致。

class Solution(object):
    def rotateRight(self, head, k):
        length = 0
        fakenode = ListNode(next=head)
        node = fakenode.next
        while node!=None:
            if node.next==None:
                lastnode = node
            length = length+1
            node = node.next
        if k==0 or length==0 or k==length or length==1:
            return head
        k = k%length
        if k==0 or length==0 or k==length or length==1:
            return head
        now = 0
        newnode = fakenode.next
        while now 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号