func (c *Cache) popTail() *node {
	n := c.tail.prev
	if n == c.head {
		return nil
	}
	c.removeNode(n)
	return n
}
Removes and returns the tail node.
Returns `nil` if there is no tail node.
package main
import "fmt"
type node struct {
	key   string
	value string
	prev  *node
	next  *node
}
func newNode() node {
	return node{"", "", nil, nil}
}
type Cache struct {
	head *node
	tail *node
	cache *(map[string]*node)
	capacity int
}