用于实验的图:
r->2; 1->s; t->3; u->4; v->5; w->6; x->7; y->8
这里对链表的结构进行了改编:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
#include <iostream>
#include <queue>
#include <stack>
#include <vector>
#include <climits>
using namespace std;
struct ListNode{
int val;
int color;//white=0,gray=1,black=2;白表示未搜索,灰表示边界,灰点的邻接节点有些遍历了有些没有;黑色表示节点周围都遍历了
int d;
vector<ListNode*> next;//存储所有的邻接节点
ListNode* pre;//便于回寻,它是从哪来的
ListNode(int x):color(0),val(x),d(16),pre(NULL){
}
};
void insert(ListNode*