[jobdu]二叉树的镜像
2013-11-13 22:47
169 查看
树的镜像,这里的做法就是先序遍历的反过来呗。
#include <iostream> #include <vector> using namespace std; void preOrder(vector<vector<int> > &tree, vector<int> &val, vector<int> &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]); } } int main() { int n; while (cin >> n) { vector<vector<int> > tree(n+1); vector<int> val(n+1); for (int i = 1; i <= n; i++) { int tmp; cin >> tmp; val[i] = tmp; } for (int i = 1; i <= n; i++) { char type; cin >> type; if (type == 'd') { int x, y; cin >> x >> y; tree[i].push_back(x); tree[i].push_back(y); } else if (type == 'l') { int x; cin >> x; tree[i].push_back(x); tree[i].push_back(-1); } else if (type == 'r') { int x; cin >> x; tree[i].push_back(-1); tree[i].push_back(x); } else if (type == 'z') { tree[i].push_back(-1); tree[i].push_back(-1); } } if (n == 0) { cout << "NULL" << endl; continue; } vector<int> ans; preOrder(tree, val, ans, 1); for (int i = 0; i < ans.size() - 1; i++) { cout << ans[i] << " "; } cout << ans[ans.size()-1] << endl; } }
相关文章推荐
- 二叉树的镜像-jobdu-1521
- [Jobdu] 题目1521:二叉树的镜像
- 剑指Offer面试题:18.二叉树的镜像
- 二叉树面试题(二)---求一颗二叉树的镜像
- [剑指offer]镜像二叉树
- [剑指offer][面试题19]二叉树的镜像
- 剑指offer 二叉树镜像
- Leetcode 95. Unique Binary Search Trees II及二叉树最大最小深度镜像树总结
- 【剑指Offer面试编程题】题目1521:二叉树的镜像--九度OJ
- java 操作给定的二叉树,将其变换为源二叉树的镜像。
- 【学习点滴-数据结构-二叉树】二叉树转换为其镜像。
- 面试题(二十七) 二叉树的镜像
- OK 面试题27:二叉树的镜像
- 剑指Offer------二叉树的镜像
- 二叉树的镜像
- 补第7天 输入一个二叉树,该函数输出它的镜像。
- 二叉树的镜像
- 二叉树的镜像
- 树的面试题(一):二叉树的镜像
- Interview----将一棵二叉树转换成其镜像