Easy
Description
Reverse a linked list.
Example
Example1:
For linked list 1->2->3
, the reversed linked list is 3->2->1
Example2:
For linked list 1->2->3->4
, the reversed linked list is 4->3->2->1
Challenge
Reverse it in-place and in one-pass
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
#Code(Language:Go)
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
/**
* @param head: n
* @return: The new head of reversed linked list.
*/
func reverse (head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
newHead := reverse(head.Next)
head.Next.Next = head
head.Next = nil
return newHead
}