rotateRight-旋转链表

题意

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

示例 1:

输入:head = [1,2,3,4,5], k = 2
输出:[4,5,1,2,3]

示例 2:

输入:head = [0,1,2], k = 4
输出:[2,0,1]

提示:

链表中节点的数目在范围 [0, 500] 内
-100 <= Node.val <= 100
0 <= k <= 2 * 109

解题思路

我们将单向链表变为循环链表,之后只要找到断点断开即可
在这里插入图片描述

代码演示

class Solution {
    public ListNode rotateRight(ListNode head, int k) {
        if(head==null)
            return head;
        int num=1;
        ListNode end=head;
        while (end.next!=null)
        {
            num++;
            end=end.next;
        }
        end.next=head;
        int pre=num-k%num;
        num=0;
        while (num!=pre-1)
        {
            head=head.next;
            num++;
        }
        ListNode res=head.next;
        head.next=null;
        return res;

    }
}

效果演示

info
解答成功:
执行耗时:1 ms,击败了51.22% 的Java用户
内存消耗:37.9 MB,击败了36.97% 的Java用户

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用HTML和CSS实现的3D旋转相册的示例代码,你可以将其中的照片替换为自己的照片并按照对应的名称命名即可实现自定义的相册效果。 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>3D相册</title> <style> .container { width: 500px; height: 500px; margin: 0 auto; position: relative; perspective: 1000px; } .photo { position: absolute; width: 400px; height: 400px; top: 50px; left: 50px; background-size: cover; background-position: center; transform-style: preserve-3d; transition: transform 1s; } .photo:nth-child(1) { transform: rotateY(0deg) translateZ(250px); } .photo:nth-child(2) { transform: rotateY(60deg) translateZ(250px); } .photo:nth-child(3) { transform: rotateY(120deg) translateZ(250px); } .photo:nth-child(4) { transform: rotateY(180deg) translateZ(250px); } .photo:nth-child(5) { transform: rotateY(240deg) translateZ(250px); } .photo:nth-child(6) { transform: rotateY(300deg) translateZ(250px); } .btn { position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 1; } .btn button { margin: 10px; padding: 5px 10px; border: none; background-color: #fff; color: #000; cursor: pointer; } .btn button:hover { background-color: #000; color: #fff; } </style> </head> <body> <div class="container"> <div class="photo" style="background-image: url('photo1.jpg');"></div> <div class="photo" style="background-image: url('photo2.jpg');"></div> <div class="photo" style="background-image: url('photo3.jpg');"></div> <div class="photo" style="background-image: url('photo4.jpg');"></div> <div class="photo" style="background-image: url('photo5.jpg');"></div> <div class="photo" style="background-image: url('photo6.jpg');"></div> </div> <div class="btn"> <button onclick="rotateLeft()">左旋转</button> <button onclick="rotateRight()">右旋转</button> <button onclick="rotateUp()">上旋转</button> <button onclick="rotateDown()">下旋转</button> </div> <script> var container = document.querySelector('.container'); var photos = document.querySelectorAll('.photo'); var rotateY = 0; var rotateX = 0; function rotateLeft() { rotateY -= 60; container.style.transform = 'rotateY(' + rotateY + 'deg) rotateX(' + rotateX + 'deg)'; } function rotateRight() { rotateY += 60; container.style.transform = 'rotateY(' + rotateY + 'deg) rotateX(' + rotateX + 'deg)'; } function rotateUp() { rotateX += 60; container.style.transform = 'rotateY(' + rotateY + 'deg) rotateX(' + rotateX + 'deg)'; } function rotateDown() { rotateX -= 60; container.style.transform = 'rotateY(' + rotateY + 'deg) rotateX(' + rotateX + 'deg)'; } </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值