func (list *SkipList) Remove(key int) bool {

    list.mut.Lock()

    defer list.mut.Unlock()

//1.查找删除节点

    node := list.head

    remove :=make([]*SkipListNode, list.level, list.level)

    var target *SkipListNode

    for index :=len(node.next) -1; index >=0; index -- {

        for {

            node1 := node.next[index]

            if node1 == list.tail ||  node1.key >  key{

                break

             }else if node1.key == key {

                remove[index] = node//找到啦

                target = node1

                break

             }else {

                node = node1

            }

        }

    }

//2.执行删除

    if target != nil {

        for index, node1 :=range remove {

            if node1 != nil {

                node1.next[index] = target.next[index]

            }

        }

        list.length --

        return true

       }

    return false

}