博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode]旋转链表
阅读量:4163 次
发布时间:2019-05-26

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

[Leetcode]旋转链表

题目描述

给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。

示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->1->2->NULL, k = 4输出: 2->0->1->NULL解释:向右旋转 1 步: 2->0->1->NULL向右旋转 2 步: 1->2->0->NULL向右旋转 3 步: 0->1->2->NULL向右旋转 4 步: 2->0->1->NULL
解题思路
  • 闭环+断链
  • 闭环后旋转k次后的头结点 为 初始链表的倒数第k个节点,题目转换为寻找问题
实现代码
# Definition for singly-linked list.# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    def rotateRight(self, head: ListNode, k: int) -> ListNode:        if head == None:            return head        tail = head        count = 1        while tail.next != None:            tail = tail.next            count += 1        tail.next = head            k = k % count        fast = head        low = head        for i in range(k + 1):            fast = fast.next        while fast != tail:            fast = fast.next            low = low.next        low = low.next        head = low.next        low.next = None        return head

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

你可能感兴趣的文章
三维点云处理:5滤波:降采样
查看>>
三维点云处理:6 降采样作业
查看>>
Fiesta:配置、运行及其结果
查看>>
三维点云处理:7最邻近问题之二叉树
查看>>
三维点云处理: k-nn、radius邻近查找作业
查看>>
三维点云处理:8 Kd-tree
查看>>
三维点云处理:9 octree
查看>>
python记录
查看>>
C++:冒泡排序的实现算法代码
查看>>
PCL是否安装成功测试(手把手超详细版)
查看>>
3、PCL 加载自己的点云数据集并显示出来
查看>>
PCL 三维点云轮廓提取
查看>>
C++:插入排序算法实现代码
查看>>
C++:快速排序法的代码实现
查看>>
4、ROS下播放激光点云bag数据并可视化
查看>>
5、激光雷达bag文件和转PCD文件
查看>>
2、关于点云格式的碎碎念
查看>>
ROS初始化时候sudo rosdep init rosdep update出现的各种问题亲测成功的解决办法(2020.12.29已解决!)
查看>>
6、ubuntu16.04 下 pcl的vogelgrid降采样处理 过程
查看>>
8、在ubuntu16.04 、ROS下使用 rviz 显示octomap_sever 构建的三维栅格地图
查看>>