func() { head := initList() head = reverseList(head) printList(head) }
type node struct { value interface{} next *node }
funcinitList() *node { var list *node var pre *node for i := 0; i < 10; i++ { tmp := &node{i + 1, nil} if i == 0 { list = tmp pre = tmp continue } pre.next = tmp pre = tmp } return list }
funcprintList(head *node) { slice := make([]interface{}, 0, 10) for cur := head; cur != nil; cur = cur.next { slice = append(slice, cur.value) } fmt.Println(slice) }
funcreverseList(head *node) *node { cur := head if cur == nil { returnnil } next := cur.next var pre *node
for { if cur == nil { break }
cur.next = pre
pre = cur cur = next if next != nil { next = next.next } }
近期评论