61. Rotate List

Given a list, rotate the list to the right by k places, where k is non-negative.

Example:

Given 1->2->3->4->5->NULL and k = 2, return 4->5->1->2->3->NULL. 
class Solution {
    public ListNode rotateRight(ListNode head, int k) {
        if (head == null || head.next == null) 
            return head;
        ListNode dummy=new ListNode(0);
        dummy.next = head;
        ListNode fast = dummy;
        ListNode slow = dummy;
        
        int i;
        for (i = 0; fast.next != null; i++)//让fast指向最后节点,i变成节点个数,此例子中i为5
            fast = fast.next; 
        
        for (int j = i - k % i; j > 0; j--)//j等于3,slow往前移动3次,移到3
            slow = slow.next;
        
        fast.next = dummy.next; //使得5指向1
        dummy.next = slow.next; //0指向4
        slow.next = null; //3指向null
        
        return dummy.next;        
    }
}
posted @   MarkLeeBYR  阅读(123)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示