题解 | #二叉树遍历#

二叉树遍历

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef

//若字符后面不是#,则一定为左子树,左子树递归完后(##结束),递归右子树即可
#include "stdio.h"
#include "string"
using namespace std;
struct TreeNode{
    char data;
    TreeNode *leftChild;
    TreeNode *rightChild;
};

TreeNode *RebuildTree(string &preList){
    if (preList.size()==0)
        return NULL;
    else{
        if(preList[0] == '#'){
            preList = preList.substr(1);
            return NULL;
        } else{
            TreeNode *node = new TreeNode;
            node->data = preList[0];
            preList = preList.substr(1);
            node->leftChild = RebuildTree(preList);
            node->rightChild = RebuildTree(preList);
            return node;
        }
    }
}

void InOrder(TreeNode *root){
    if (root!=NULL){
        InOrder(root->leftChild);
        printf("%c ",root->data);
        InOrder(root->rightChild);
    }
    return;
}

int main(){
    char preList[101];
    while (scanf("%s",preList)!=EOF){
        string str = preList;
        TreeNode *root = RebuildTree(str);
        InOrder(root);
        printf("\n");
    }
}

全部评论

相关推荐

01-04 07:53
门头沟学院 C++
心愿便利贴:工作了以后回头再看待这个问题,从客观的视角来讲是因为每个人对自己的要求不同,学习好的人对自己的要求很高,所以觉得考不好就天塌了,认为自己学习好并且值得一份好工作的人也是一样,找不到符合自己预期的工作肯定也会觉得是侮辱,牛客上有很多名校大学生,肯定会存在这种好学生心态啊,“做题区”从来都不是贬义词,这是大部分普通人赖以生存的路径,这个有什么好嘲讽的,有“好学生心态”没有错,但是不要给自己太大的压力了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务