1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| package main
import "fmt"
type ListNode struct { Val int Next *ListNode }
func ReverseList(head *ListNode) *ListNode { var prev, next *ListNode curr := head for curr != nil { next = curr.Next curr.Next = prev prev = curr curr = next }
return prev }
func main() { List1 := BuildList() fmt.Println("old", GetList(List1)) List2 := ReverseList(List1) fmt.Println("new", GetList(List2)) }
func BuildList() *ListNode { L3 := &ListNode{Val: 3} L2 := &ListNode{Val: 2, Next: L3} L1 := &ListNode{Val: 1, Next: L2} return L1 }
func GetList(head *ListNode) []int { var arr []int for head != nil { arr = append(arr, head.Val) head = head.Next } return arr }
|