博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1102. Invert a Binary Tree (25)
阅读量:4987 次
发布时间:2019-06-12

本文共 2142 字,大约阅读时间需要 7 分钟。

The following is from Max Howell @twitter:

Google: 90% of our engineers use the software you wrote (Homebrew), but you can't invert a binary tree on a whiteboard so fuck off.

Now it's your turn to prove that YOU CAN invert a binary tree!

Input Specification:

Each input file contains one test case. For each case, the first line gives a positive integer N (<=10) which is the total number of nodes in the tree -- and hence the nodes are numbered from 0 to N-1. Then N lines follow, each corresponds to a node from 0 to N-1, and gives the indices of the left and right children of the node. If the child does not exist, a "-" will be put at the position. Any pair of children are separated by a space.

Output Specification:

For each test case, print in the first line the level-order, and then in the second line the in-order traversal sequences of the inverted tree. There must be exactly one space between any adjacent numbers, and no extra space at the end of the line.

Sample Input:
81 -- -0 -2 7- -- -5 -4 6
Sample Output:
3 7 2 6 4 0 5 16 5 7 4 3 2 0 1 代码:
#include 
#include
#include
#include
#include
#include
#include
using namespace std;struct tree{ int l,r;}s[10];int n,v[10],head,flag = 0;char a,b;void invert(int head){ if(head == -1)return; invert(s[head].l); invert(s[head].r); swap(s[head].l,s[head].r);}void in_order(int head){ if(head == -1)return; in_order(s[head].l); if(flag)printf(" %d",head); else printf("%d",head); flag ++; in_order(s[head].r);}void level_order(int head){ int q[10],he = 0,ta = 0; if(head == -1)return ; q[ta ++] = head; while(he < ta) { int i = q[he]; if(s[i].l != -1)q[ta ++] = s[i].l; if(s[i].r != -1)q[ta ++] = s[i].r; if(he)cout<<' '<
>n; for(int i = 0;i < n;i ++) { cin>>a>>b; if(a != '-')s[i].l = a - '0',v[s[i].l] = 1; else s[i].l = -1; if(b != '-')s[i].r = b - '0',v[s[i].r] = 1; else s[i].r = -1; } for(int i = 0;i < n;i ++) if(!v[i]) { head = i; break; } invert(head); level_order(head); in_order(head);}

 

转载于:https://www.cnblogs.com/8023spz/p/8413475.html

你可能感兴趣的文章
【uva11987】带删除的并查集
查看>>
Redis设置认证密码
查看>>
终于有人把P2P、P2C、O2O、B2C、B2B、C2C的区别讲透了!还有许多其它类别的类型分享...
查看>>
Auth认证
查看>>
Elasticsearch索引模板和别名
查看>>
HTTP协议的8种请求类型介绍
查看>>
[收藏]Oracle技术网里的链接
查看>>
varchar和Nvarchar区别
查看>>
2o_TwoTips
查看>>
iosblock用法
查看>>
【TensorFlow】Win7下使用Object Detection API 训练自己的数据集,并视频实时检测
查看>>
json和jsonp
查看>>
Python --标准库 存储对象 (pickle包,cPickle包)
查看>>
SQL Server 2016 查询存储性能优化小结
查看>>
遍历xml所有节点 采用dom4j,jdom
查看>>
鸟哥学习笔记四(基础篇第九章)
查看>>
Unity内存优化
查看>>
Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
查看>>
传递参数ref与输出参数out
查看>>
java1.8对集合中对象的特有属性进行排序
查看>>