Pop peut être bcp plus simple
let node = self.head.take();
return match node {
Some(n) => {
self.head = n.next;
Some(n.data)
},
None => {
self.head = None;
None
}
}
pop peut tenir en 3 lignes