链表 61. 旋转链表
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。
示例 1:
输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3]
查看原文
这道题目思路很简单,直接连接头和尾,选倒数第k个节点为头结点就行了,也就是
int mod = k % count;,mod也就是顺序头节点,代码
public static ListNode rotateRight(ListNode head, int k) {
ListNode currNode = head;
int count = 0;
if (currNode == null)
return null;
if (k == 0) {
return head;
}
while (currNode.next != null) {
currNode = currNode.next;
count++;
}
count++;
currNode.next = head;
<pre><code> int mod = k % count;
currNode = head;
for (int i = 0; i < count - mod - 1; i++) {
currNode = currNode.next;
}
ListNode newHead = currNode.next;
currNode.next = null;
System.out.println(newHead.val);
return newHead;
}
评论区