九度 1521:二叉树的镜像
输入一个二叉树,输出其镜像。
思路
1. 二叉树镜像的判定, 镜像树的建立是类似的题目.
2. 代码的框架是 func(root1, root2). 函数体内部是 func(root1->left, root->right), func(root->left, root->right)
3. 建立的方法都是 bottomUp, 这个过程可以通过 func 的返回实现, 也可以通过参数实现.
代码 未通过九度测试, 以后再改吧
#include <iostream> #include <stdio.h> #include <string> #include <cstdlib> #include <cstring> using namespace std; char arr[10000]; string str; void myRerverse(int len) { int i = 0, j = len-1; while(i < j) { swap(arr[i], arr[j]); i++; j--; } } int main() { freopen("testcase.txt", "r", stdin); int n; string str_n; while(getline(cin, str_n)) { n = atoi(str_n.c_str()); if(n == 0) break; getline(cin, str); int i = 0; int len; while(i < n) { len = 0; while(i < n && str[i] == ' ') { i++; len ++; } if(len != 0) cout << " "; len = 0; while(i < n && str[i] != ' ') { arr[len] = str[i]; i++; len++; } if(len != 0) { myRerverse(len); arr[len] = '\0'; printf("%s", arr); } } cout << endl; } return 0; }