九度 1521:二叉树的镜像

题目描述:

输入一个二叉树,输出其镜像。

九度 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;

}

 

你可能感兴趣的:(二叉树)