题解 | #二叉树遍历#

二叉树遍历

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");
    }
}

全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务