Une erreur dans mon code que j'arrive pas à corriger

Mon main est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package algo.graph;
 
public class Main {
 
	/**
         * @param args
         */
	public static void main(String[] args) {
		Graph graph = new Graph();
 
		graph.addNode("Lille",new Node());
		graph.addNode("Paris",new Node());
		graph.addNode("Nantes",new Node());
		graph.addNode("Strasbourg",new Node());
		graph.addNode("Mulhouse",new Node());
		graph.addNode("Lyon",new Node());
		graph.addNode("Bordeaux",new Node());
		graph.addNode("Biarritz",new Node());
		graph.addNode("Valence",new Node());
		graph.addNode("Montpellier",new Node());
		graph.addNode("Gap",new Node());
		graph.addNode("Nice",new Node());
		graph.addNode("Geneve",new Node());
		graph.addNode("Grenoble",new Node());
 
		graph.addRoute("Lille","Paris",100);
		graph.addRoute("Paris","Nantes",50);
		graph.addRoute("Paris","Lyon",100);
		graph.addRoute("Lyon","Grenoble",100);
		graph.addRoute("Paris","Mulhouse",300);
		graph.addRoute("Mulhouse","Geneve",350);
		graph.addRoute("Geneve","Grenoble",360);
		graph.addRoute("Grenoble","Gap",365);
		graph.addRoute("Gap","Nice",30);
		graph.addRoute("Nantes","Bordeaux",500);
		graph.addRoute("Bordeaux","Biarritz",20);
 
 
	}
 
}
Mais lorsque je l'execute il ne fonctionne pas et m'affiche comme problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Exception in thread "main" java.lang.NullPointerException
	at algo.graph.Graph.addNode(Graph.java:22)
	at algo.graph.Main.main(Main.java:11)
Mon Graph est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package algo.graph;
 
//import java.util.ArrayList;
//import java.util.List;
import java.util.Map;
import java.util.TreeMap;
 
import algo.graph.interfaces.IGraph;
import algo.graph.interfaces.INode;
import algo.graph.interfaces.IRelation;
 
public class Graph implements IGraph{
 
	private Map <String,INode> nodes;
 
	public void Graphe(){
		nodes = new TreeMap<>();
	}
 
	public void addNode(String string, INode node){
 
		this.nodes.put(string, node);
 
	}
 
	public void addRoute (String A, String B, int weight) {
 
		INode n1 = nodes.get(A);
		INode n2 = nodes.get(B);
		IRelation relation = new Relation(n1,n2,weight);
		n1.addRelation(relation);
		n2.addRelation(relation);
 
	}
 
 
}
Voyez vous quel est mon probleme?