В принципе, более простой способ будет:
public Optional<V> getValue(K key) {
return Optional.ofNullable(getNode(key))
.map(Node::getValue);
}
Если вы все еще хотите придерживаться того, что у вас было, вы можете сделать это с помощью:
public Optional<V> getValue(K key) {
Node<K, V> node = getNode(key);
return isNull(node) ?
Optional.empty() : Optional.ofNullable(node.getValue());
}