LeetCode----- 61. Rotate List
2017-10-20 21:31
525 查看
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given
return
给定一个单链表,将单链表旋转到右边的k个位置,k为非负数。
解题思路:先判断链表结点个数,然后将单链表构成循环单链表,然后遍历旋转的次数,寻找到头结点。
For example:
Given
1->2->3->4->5->NULLand k =
2,
return
4->5->1->2->3->NULL.
给定一个单链表,将单链表旋转到右边的k个位置,k为非负数。
解题思路:先判断链表结点个数,然后将单链表构成循环单链表,然后遍历旋转的次数,寻找到头结点。
public class RotateList { public static ListNode rotateRight(ListNode head, int k) { if(head == null || head.next == null) { return head; } int length = 0; ListNode result = new ListNode(0); result.next = head; ListNode node = result; while(node.next!=null) { length++; node = node.next; } node.next = head;//构成循环链表 for(int i=0;i<length-k%length;i++) { node = node.next; } result.next = node.next; node.next = null; return result.next; } public static void main(String[] args) { ListNode l10 = new ListNode(1); ListNode l11 = new ListNode(2); ListNode l12 = new ListNode(3); ListNode l13 = new ListNode(4); ListNode l14 = new ListNode(5); ListNode l15 = new ListNode(6); l10.next = l11; l11.next = l12; l12.next = l13; l13.next = l14; l14.next = l15; l15.next = null; ListNode node =rotateRight(l10,7); while(node != null) { if(node.next == null) { System.out.println(node.val); }else{ System.out.print(node.val +"->"); } node = node.next; } } }
相关文章推荐
- leetcode 61. Rotate List
- 【LeetCode】61. Rotate List
- Leetcode 61. Rotate List
- LeetCode 61 Rotate List
- LeetCode(61)——Rotate List
- 【leetcode每日一题】61.Rotate List
- LeetCode(61) Rotate List
- leetcode61: Rotate List
- LeetCode 61. Rotate List
- Leetcode 61. Rotate List
- LeetCode 61 Rotate List
- [LeetCode61]Rotate List
- leetcode 61:Rotate List
- LeetCode 61. Rotate List
- LeetCode | 61. Rotate List
- LeetCode 61. Rotate List
- LeetCode 61. Rotate List
- leetcode 61. Rotate List
- LeetCode61 Rotate List
- (Java)LeetCode-61. Rotate List