旋转单链表
3 月,跳不动了?>>> 原题 Given a list, rotate the list to the right by k places, where k is non-negative. For example: Given 1->2->3->4->5->NULL and k = 2 , return 4->5->1->2->3->NULL . 题目大意 向右旋转一个单链表,旋转k个位置,k非负数。 解题思路 用一个辅助root结点连接到链表头,先找到要移动的第一个结点的前驱prev,再将prev后的所有结点接到root后面,再将组成一个旋转后的单链表。 代码实现 链表结点类 public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 1 2 3 4 5 1 2 3 4 5 算法 实现类 public class Solution { public ListNode rotateRight(ListNode head, int n) { if (head == null || n < 1) { return head; } ListNode root = new ListNode(0); root.next = head; ListNode p =