题目描述
给定一个链表,将其向右旋转 k 个节点,其中 k 为非负整数。
示例
输入:1->2->3->4->5->NULL, k = 2 输出:4->5->1->2->3->NULL 解释:向右旋转 1 步:5->1->2->3->4->NULL;向右旋转 2 步:4->5->1->2->3->NULL。
辅助工具类
为了方便测试和打印链表结构,我们定义以下公共节点类。
package common;
public class ListNode {
public int val;
public ListNode next;
public ListNode(int val) {
this.val = val;
}
static public ListNode listNodeWithIntArray(int[] input) {
ListNode head = new ListNode(0);
ListNode node = head;
for (int i : input) {
ListNode newNode = new ListNode(i);
node.next = newNode;
node = node.next;
}
return head.next;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
ListNode ;
(node != ) {
sb.append(node.val).append();
node = node.next;
}
sb.append().toString();
}
{
( == obj) {
;
}
;
}
}

