旋转链表
链表 旋转
2023-09-14 08:56:53 时间
![](https://img2022.cnblogs.com/blog/1468919/202207/1468919-20220701162748657-1731131037.png)
https://leetcode.cn/problems/rotate-list/solution/xiang-zi-xing-che-lian-yi-yang-qu-xuan-z-di8y/
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func rotateRight(head *ListNode, k int) *ListNode { if head == nil { return nil } now := head num := 1 // 计算链表长度 for now.Next != nil { num ++ now = now.Next } now.Next = head //将链表末尾和开头连接形成环 cnt := num - (k%num) //计算需要移动的步数 for i := 0; i < cnt; i ++ { now = now.Next // 移动 } h := now.Next //获取新链表头部 now.Next = nil //移除指向新链表头部的指针,也就是拆环 return h }
相关文章
- Java实现 LeetCode 203 移除链表元素
- 链表题目汇总
- 【刷题】数组与链表 & ArrayList和LinkedList Array和ArrayList
- 双向链表
- LeetCode(61):旋转链表
- ( “树” 之 BST) 109. 有序链表转换二叉搜索树 ——【Leetcode每日一题】
- PHP数据结构之——链表
- 1019. 链表中的下一个更大节点
- c语言链表翻转链接地址
- 【Linux 内核 内存管理】RCU 机制 ① ( RCU 机制简介 | RCU 机制的优势与弊端 | RCU 机制的链表应用场景 )
- 【LeetCode】剑指 Offer II 024. 反转链表
- 【LeetCode】61.旋转链表