private static <T> void printDFSStack(List<Node<T>> adjList) {
		Stack<Node<?>> stk = new Stack<>();
		
		for (Node<T> node:adjList) {
			Map<Node<?>, Integer> track = new HashMap<>();
			
			System.out.print(node + "->");
			track.put(node, 2);
//			if (track.get(node) == null) {
//				track.put(node, 1);
				stk.push(node);
				while (!stk.isEmpty()) {
					Node<?> nodei = stk.pop();
					if (track.get(nodei) < 2) {
						System.out.print(nodei + "->");
						track.put(nodei, 2);
					}
					for (Node<?> nodej:nodei.nextNodes) {
						if (track.get(nodej) == null) {
							track.put(nodej, 1);
							stk.push(nodej);
						}
					}
				}
//			}
			
			
			System.out.println("");
		}
		
	}