61. rotate list

# 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 head==None:
            return head
        curNode = head
        size = 0
        while curNode!=None:
            size += 1
            curNode = curNode.next
        k = k%size
        if k==0:         # return head
            return head
        len = 1
        curNode = head
        while len<size-k:
            len += 1
            curNode = curNode.next  # curNode forward 3
        newHead = curNode.next      # newHead forward 4
        curNode.next = None         # curNode foward null, head now 1-3
        curNode = newHead           # curNode forward 4
        while curNode.next!=None:
            curNode = curNode.next  # curNode traversal 4-5
        curNode.next = head         # curNode forward head
        return newHead