12345678910111213141516171819202122232425262728293031 |
- /**
- * Definition for singly-linked list.
- * type ListNode struct {
- * Val int
- * Next *ListNode
- * }
- */
- func reverseList(head *ListNode) *ListNode {
- return reverseRecurse(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) *ListNode {
- if head == nil || head.Next == nil {
- return head
- }
- newHead := reverseRecurse(head.Next)
- head.Next.Next = head
- head.Next = nil
- return newHead
- }
|