public static void print(UndirectedGraphNode node) {
    	if (null == node) return;
    	List<UndirectedGraphNode> nodes = new ArrayList<UndirectedGraphNode>();
    	int index = 0;
    	if (null != node)nodes.add(node);
    	while (index != nodes.size()) {
    		UndirectedGraphNode n = nodes.get(index);
    		System.out.print(n.label + "(");
    		for (UndirectedGraphNode neighbor : n.neighbors) {
    			if (!(nodes.contains(neighbor))) {
    				nodes.add(neighbor);
    			}
    			System.out.print(neighbor.label + ",");
    		}
    		System.out.println(")");
    		index = index + 1;
    	}
    }