题解 | #二叉树遍历#

二叉树遍历

https://www.nowcoder.com/practice/6e732a9632bc4d12b442469aed7fe9ce

#include <stdio.h>
#include <string.h>

void getPostOrder(char* preOrder, char* inOrder, int len) {
    if (len <= 0) {
        return;
    }
    char root = *preOrder;//将前序遍历序列的第一个字符赋值给变量root
    int rootIndex = 0;
    while (inOrder[rootIndex] != root) {
        rootIndex++;
    }

    getPostOrder(preOrder + 1, inOrder, rootIndex);
    getPostOrder(preOrder + rootIndex + 1, inOrder + rootIndex + 1,
                 len - rootIndex - 1);

    printf("%c", root);
}

int main() {
    char preOrder[27], inOrder[27];
    while (scanf("%s", preOrder) != EOF) {
        scanf("%s", inOrder);
        int len = strlen(preOrder);
        getPostOrder(preOrder, inOrder, len);
        printf("\n");
    }

    return 0;
}

全部评论

相关推荐

仁者伍敌:服务员还要脱颖而出,这是五星级酒店吗
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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