public static int getLevelSum(Node root, int N) {
		/*
		 * Please implement this method to traverse the tree and return the sum
		 * of the values (Node.getValue()) of all nodes at the level N in the
		 * tree. Node root is assumed to be at the level 1. All its children are
		 * level 2, etc.
		 */

		// falls nur ein Level gefordert
		if (N == 1) {
			return root.getValue();
		} else {
			// init
			int sum = 0;
			// Knoten auf dem aktuellen Level
			List<Node> levelNodeList = new ArrayList<Node>();
			levelNodeList = root.getChildren();
			//Knoten auf dem folgenden Level
			List<Node> nextLevelNodeList = new ArrayList<Node>();
			
			// bis zum geforderten Level iterieren
			for (int level = 2; level <= N; level++) {

				// durch Knoten auf jetzigem Level iterieren
				for (Node node : levelNodeList) {
					// sind Knoten vorhanden?
					if(node.getChildren().size()>0){
						// Knoten fr das nchste level abspeichern
						nextLevelNodeList.addAll(node.getChildren());
						}
					// wenn gefordertes Level erreicht
					if (level == N) {
						sum += node.getValue();
					}
				}
				// Variablen fr nchstes Level zurcksetzen
				levelNodeList.clear();
				levelNodeList.addAll(nextLevelNodeList);
				nextLevelNodeList.clear();
			}
			return sum;
		}
	}