| 12345678910111213141516171819202122232425262728293031323334353637 | /** * Definition for singly-linked list. * type ListNode struct { *     Val int *     Next *ListNode * } */func reverseList(head *ListNode) *ListNode {	reverseRecurse(&head)	return head// return reverseIter(head, nil)}func reverseIter(head, tail *ListNode) *ListNode {	if head == nil {		return tail	}	curr := head	head = head.Next	curr.Next = tail	return reverseIter(head, curr)}func reverseRecurse(head **ListNode) {	first := *head	if first == nil {		return	}	rest := first.Next	if rest == nil {		return	}	reverseRecurse(&rest)	first.Next.Next = first	first.Next = nil	*head = rest}
 |