把相邻结点染成不同颜色称为图的着色问题
对图进行着色的最小颜色数为2时称为二分图
思路:
这里对图的表示采取邻接表,然后就是常规的深搜。
step 1:创建邻接表的类,包含基本的API:
import java.util.ArrayList;
import java.util.List;
public class GraphNode_AL {
//邻接表的表示使用ArrayList来表示邻居
public int val;
//邻居节点
private List<GraphNode_AL> neighbors;
//当前的节点是否被访问
public boolean checked = false;
//构造方法
public GraphNode_AL(int val) {
this.val = val;
}
//增加邻居节点
public void add(GraphNode_AL node){
if(this.neighbors == null)
neighbors = new