43 leetcode - Rotate List
2016-12-16 11:41
260 查看
#!/usr/bin/python # -*- coding: utf-8 -*- ''' Rotate List 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. Subscribe to see which companies asked this question 将单链表循环右移k次,每次移动一个结点。 ''' # Definition for singly-linked list. class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def rotateRight(self, head, k): """ :type head: ListNode :type k: int :rtype: ListNode """ if k < 1 or head == None: return head length = 1 end = head while end.next != None: end = end.next length += 1 k = k % length #循环右移length个等于没有移动 if k == 0: return head k = length - k start = head while k > 1: #寻找未右移截止点 start = start.next k -= 1 new_head = start.next#新的起点 start.next = None end.next = head #将两个链表链接起来 return new_head if __name__ == "__main__": s = Solution() a = ListNode(1) b = ListNode(2) d = ListNode(3) a.next = b b.next =d c = s.rotateRight(a,2) while c != None: print c.val c = c.next
相关文章推荐
- LeetCode-Rotate List
- LeetCode 43 Multiply Strings
- [C++]LeetCode: 76 Rotate List
- 【LeetCode】Rotate List
- [LeetCode 43] Multiply Strings
- LeetCode-43. Multiply Strings (JAVA)大整数乘法
- [Leetcode]Rotate List
- leetcode Rotate list
- LeetCode 43题之 Multiply Strings
- [leetcode]61. Rotate List
- LeetCode: Rotate List
- LeetCode(43) Multiply Strings
- leetCode(43):Product of Array Except Self 分类: leetCode 2015-07-19 19:02 60人阅读 评论(0) 收藏
- [Leetcode]#43 Multiply Strings
- LeetCode(43)-Contains Duplicate II
- Rotate List || LeetCode
- [leetcode] Rotate List
- Leetcode 之Binary Tree Inorder Traversal(43)
- 【leetcode】Rotate List
- leetcode 61:Rotate List