classSolution{ funcrotateRight(_head: ListNode?, _k: Int) -> ListNode? { if head ==nil { returnnil } var slow = head, fast = head, len =0 var p = head while p !=nil { p = p?.next len +=1 } let step = k % len for i in0..< step { fast = fast?.next } while fast?.next !=nil { slow = slow?.next fast = fast?.next } fast?.next = head p = slow?.next slow?.next =nil return p } }
/** * Definition for singly-linked list. * public class ListNode { * public var val: Int * public var next: ListNode? * public init() { self.val = 0; self.next = nil; } * public init(_ val: Int) { self.val = val; self.next = nil; } * public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; } * } */ classSolution{ funcrotateRight(_head: ListNode?, _k: Int) -> ListNode? { if head ==nil { returnnil } var len =1 var p = head while p?.next !=nil { p = p?.next len +=1 } let step = len - k % len p?.next = head var newHead = head for i in0..< step { p = p?.next newHead = newHead?.next } p?.next =nil return newHead } }