树的镜像,这里的做法就是先序遍历的反过来呗。

#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]二叉树的镜像的更多相关文章

  1. 剑指Offer面试题:18.二叉树的镜像

    一.题目:二叉树的镜像 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像.例如下图所示,左图是原二叉树,而右图则是该二叉树的镜像. 该二叉树节点的定义如下,采用C#语言描述: public c ...

  2. 剑指Offer 二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  3. 剑指Offer:面试题19——二叉树的镜像(java实现)

    问题描述: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树结点定义为: public class TreeNode { int val = 0; TreeNode left = null; Tr ...

  4. (剑指Offer)面试题19:二叉树的镜像

    题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的定义如下: struct TreeNode{ int val; TreeNode* left; TreeNode* right; }; 输 ...

  5. 《剑指offer》— JavaScript(18)二叉树的镜像

    二叉树的镜像 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 相关知识 二叉树的镜像定义: 源二叉树 镜像二叉树 思路 有关二叉树的算法问题,一般都可以通过递归来解决.那么写一个正确的递归程序 ...

  6. 剑指offer——二叉树的镜像

    题目:操作给定的二叉树,将其变换为源二叉树的镜像. 思路:前序(根左右的顺序)遍历一棵树,在存储的时候将其左右树进行交换,最后按照处理后的树还原,即得到其镜像. /** public class Tr ...

  7. 包含min函数的栈 ,二叉树的镜像

    包含min函数的栈 问题 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 代码 # -*- coding:utf-8 -*- class Sol ...

  8. 《剑指offer》 二叉树的镜像

    本题来自<剑指offer>二叉树的镜像 题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 ...

  9. 剑指offer(18)二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

随机推荐

  1. Memcached 工作原理

    http://hzp.iteye.com/blog/1872664 Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key, ...

  2. json解析日期方法 问题的解决方案

    之前在做项目的时候发现,用json格式传输日期数据的时候,发现从数据库中传回到页面的数据出现错误,查阅相关资料才知道,原来json不支持日期解析,要自己解决,解决方案也很简单,写一段js代码就OK了- ...

  3. Java 简单算法--打印回文数字

    package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { f ...

  4. Jquery 1.11.1 Checkbox checked 判断

    if($(this).prop('checked'))

  5. Codevs 2611 观光旅游(floyed最小环)

    2611 观光旅游 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 某旅游区里面有N个景点.两个景点之间可能直接有道路相连,用 ...

  6. 错误:variable `xxx' has initializer but incomplete type

    错误:variable `xxx' has initializer but incomplete type 原因:xxx对应的类型没有找到,只把xxx声明了但是没给出定义.编译器无从确认你调用的构造函 ...

  7. HIT 1867 经理的烦恼

    题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1867 每次更新时判断是否素数,如果从非素数变成素数就Update(x, 1),如果从素数变成非素数就U ...

  8. CenOS6.4 系统升级内核

    获取要升级的内核版本的包 #wget -c https://www.kernel.org/pub/linux/kernel/v3.x/内核版本 若得到的内核的压缩格式为tar.xz,则需要两步解压 # ...

  9. 基于bootstrap3的 表格和分页的插件

    如题 样式呢就是bootstrap3 的 功能呢就是实现表格和分页 (以上废话) 本来是自己没事儿写的一个js插件,曾经搁浅了一阵子,但最近由于公司项目的原因也需要这样的一个插件,所以就捡起来做了个可 ...

  10. linux 客户端与linux服务器端连接与文件上传下载

    linux客户端连接linux服务器 用ssh 可以用 man ssh 查看用法 基本格式: ssh 用户名@主机名 如: ssh root@1.1.1.1 linux客户端上传文件到 linux 服 ...