leetcode61旋转链表
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode61旋转链表相关的知识,希望对你有一定的参考价值。
一.问题描述
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。
输入:head = [1,2,3,4,5], k = 2
输出:[4,5,1,2,3]
二.示例代码
public class RotatingLinkedList61 {
public static void main(String[] args) {
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
ListNode listNode4 = new ListNode(4);
ListNode listNode5 = new ListNode(5);
listNode1.next = listNode2;
listNode2.next = listNode3;
listNode3.next = listNode4;
listNode4.next = listNode5;
int k = 2;
ListNode result = rotatingLinkedList(listNode1, k);
System.out.println(result);
}
private static ListNode rotatingLinkedList(ListNode root, int k) {
int length = 1;
ListNode tempNode = root;
while (tempNode.next != null) {
length++;
tempNode = tempNode.next;
}
k %= length;
int moveIndex = length - k;
tempNode.next = root;
while (moveIndex > 0) {
tempNode = tempNode.next;
moveIndex--;
}
ListNode result = tempNode.next;
tempNode.next = null;
return result;
}
}
以上是关于leetcode61旋转链表的主要内容,如果未能解决你的问题,请参考以下文章