问个题,怎么比较两个tree是topological same?# JobHunting - 待字闺中b*e2014-08-03 07:081 楼就是两个,tree,不一定是binary,struct node{vector next;};如何判断可以permute children使得两个tree等价?
a*02014-08-03 07:082 楼递归?【在 b*******e 的大作中提到】: 就是两个,tree,不一定是binary,: struct node{: vector next;: };: 如何判断可以permute children使得两个tree等价?
a*y2014-08-03 07:084 楼bool IsIdenticalTree(const Node* root1, const Node* root2) {if (root1 && !root2) {return false;} else if (!root1 && root2) {return false;} else if (!root1 && !root2) {return true;} else if (root1->data != root2->data) {return false;} else if (root1->next.size() != root2->next.size()) {return false;}for (int i = 0; i < root1->next.size(); ++i) {if (!IsIdenticalTree(root1->next[i], root2->next[i])) {return false;}}return true;}可以么?