摘要: 树的镜像,这里的做法就是先序遍历的反过来呗。#include #include using namespace std;void preOrder(vector > &tree, vector &val, vector &ans, int root) { if (root == -1) return; else { ans.push_back(val[root]); preOrder(tree, val, ans, tree[root][1]); preOrder(tree, val, ans, tree[root][0]); }}i... 阅读全文
posted @ 2013-11-13 22:47 阿牧遥 阅读(365) 评论(1) 推荐(0)
摘要: 判断一棵树B是否是A的子树,对A做DFS,然后不断判断是否和B相同。其实也可以不对A做DFS,直接遍历A中的每个节点和B做树的比较就行了。#include #include using namespace std; bool sameTree(int a, int b, vector > &treeA, vector > &treeB, vector &valA, vector &valB) { if (valA[a] != valB[b]) return false; if (treeB[b].size() == 0) return true; i 阅读全文
posted @ 2013-11-13 22:20 阿牧遥 阅读(258) 评论(0) 推荐(0)