type Node struct {
Next *Node
Value interface{}
}
//反转单链表
//pre cur cur.Next
//nil->1->2->3
//1->nil,2->3
//2->1->nil,3
//3->2->1->nil
func ReverseList(head *Node) *Node{
cur := head
var pre *Node = nil
for cur != nil {
pre, cur, cur.Next = cur, cur.Next, pre
}
return pre
}
pre是cur的最前面那位(pre = cur)
cur就是当前位的后面链表元素(cur = cur.Next)
cur.Next肯定是接pre(cur.Next = pre)