package q92 type ListNode struct { Val int Next *ListNode } func reverseBetween(head *ListNode, left int, right int) *ListNode { stub := &ListNode{Next: head} before := stub for range left - 1 { before = before.Next } curr := before.Next for range right - left { move := curr.Next curr.Next = move.Next move.Next = before.Next before.Next = move } return stub.Next } var _ = reverseBetween