Rotate List - LeetCode
来源:互联网 发布:淘宝产品摄影 编辑:程序博客网 时间:2024/05/30 04:19
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
.
没有完全AC,还有细节小问题,但是大体逻辑是这样的。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode rotateRight(ListNode head, int n) { if(head == null){ return null; } if(n == 0) return head; ListNode newhead = new ListNode(0); int count = 1; ListNode current = new ListNode(0); current = head; while(current.next != null){ count ++; current = current.next; } // System.out.println(count); if(count == 1) return head; if(n > count) n = count; ListNode tail = current; current = head; for(int i = 1; i < count - n; i++){ current = current.next; } newhead.next = current.next; tail.next = head; current.next = null; return newhead.next; } }
public class Solution { private int getLength(ListNode head) { int length = 0; while (head != null) { length ++; head = head.next; } return length; } public ListNode rotateRight(ListNode head, int n) { if (head == null) { return null; } int length = getLength(head); n = n % length; ListNode dummy = new ListNode(0); dummy.next = head; head = dummy; ListNode tail = dummy; for (int i = 0; i < n; i++) { head = head.next; } while (head.next != null) { tail = tail.next; head = head.next; } head.next = dummy.next; dummy.next = tail.next; tail.next = null; return dummy.next; }}
0 0
- [leetcode][list] Rotate List
- LeetCode: Rotate List
- LeetCode Rotate List
- LeetCode : Rotate List
- [Leetcode] Rotate List
- [LeetCode] Rotate List
- [leetcode] Rotate List
- leetcode 70: Rotate List
- [Leetcode] Rotate List
- 【leetcode】Rotate List
- [LeetCode]Rotate List
- [leetcode]Rotate List
- LeetCode-Rotate List
- [leetcode] Rotate List
- LeetCode - Rotate List
- LeetCode:Rotate List
- LeetCode 61: Rotate List
- leetcode之Rotate List
- Reverse Linked List II - LeetCode
- 如何在电脑上测试手机网站(补充)和phonegap
- 搭建eclipse的nodejs开发环境
- Think Python 学习笔记1:编程方法
- Valid Parentheses -- LeetCode
- Rotate List - LeetCode
- android解析xml文件的方式(其一)
- android解析xml文件的方式(其二)
- Android异步下载网络图片(其三)
- CF 377C Captains Mode(状压dp+博弈)
- memcached 按键查找和批量查找
- pat1008段错误
- C++ 冒泡、堆排序、插入排序算法
- try-catch语句